我有一个名为users
的mysql表,它有一个唯一的id
列加上其他列的列表,列表太多了。
是否可以使用id
复制特定的行数据,并使用新ID将其添加到表的末尾,而无需列出每个列名?
答案 0 :(得分:0)
假设id列是自动递增的,您可以通过列出列来执行您想要的操作:
insert into t(. . .) -- all but id
select . . . -- all but id
from t
where id = @id;
您可以使用information_schema
select group_concat(column_name)
from information_schema.columns
where table_schema = @schema and table_name = @name and
column_name <> 'id';
您可以将列复制并粘贴到上面的查询中。或者,您甚至可以将值放在变量中,构造SQL语句,然后使用prepare
。