我想复制一行的所有列,但不必指定每一列.我知道http://dev.mysql.com/doc/refman/5.1/en/insert-select.html上的语法,但我认为无法忽略列.
对于我的示例,我试图将行的所有列复制到新行,但主键除外.
有没有办法做到这一点,而不必写入查询与其中的每个字段?
如果您的id
主键列是主键,则auto_increment
可以使用临时表:
CREATE TEMPORARY TABLE temp_table AS SELECT * FROM source_table WHERE id='7'; UPDATE temp_table SET id='100' WHERE id='7'; INSERT INTO source_table SELECT * FROM temp_table; DROP TEMPORARY TABLE temp_table;
因此,通过这种方式,您可以复制行id ='7'中的所有数据,然后分配新值'100'(或者任何值超出source_table中当前auto_increment值的范围).
编辑:记住; 在陈述之后:)