除auto_increment列之外的任何MySQL命令都要复制行?

时间:2012-09-19 03:41:19

标签: mysql duplicates row

我一直在寻找一种复制行的方法,然后将其插回到表中,但使用不同的id值(其类型为自动增量)。

我可以通过手动指定每一列来实现这一点,但是因为有很多列,并且由于将来可以添加或删除列,所以我想使用一些简单的查询来执行此操作,而无需指定每个列名

2 个答案:

答案 0 :(得分:4)

试试这个:

CREATE TEMPORARY TABLE temp_table SELECT * FROM source_table WHERE ...; 
ALTER TABLE temp_table DROP COLUMN column_with_auto_increment;
INSERT INTO source_table SELECT * from temp_table; DROP TABLE temp_table;

答案 1 :(得分:0)

尝试

INSERT INTO new_table (attr1, attr2, attr3) SELECT oldatr1, oldatr2, oldatr3 FROM old_table WHERE <the filter you want>

如果new_table和old_table相同,它也可以工作。