【发布时间】:2012-09-19 03:41:18
【问题描述】:
我一直在寻找一种方法来复制一行,并将其插入回表中,但使用不同的 id 值(其类型是自动递增)。
我可以通过手动指定每一列来做到这一点,但由于有很多列,并且将来可以添加或删除这些列,我想使用一些简单的查询来执行此操作,而不必指定每个列名.
【问题讨论】:
标签: mysql duplicates row
我一直在寻找一种方法来复制一行,并将其插入回表中,但使用不同的 id 值(其类型是自动递增)。
我可以通过手动指定每一列来做到这一点,但由于有很多列,并且将来可以添加或删除这些列,我想使用一些简单的查询来执行此操作,而不必指定每个列名.
【问题讨论】:
标签: mysql duplicates row
试试这个:
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;
【讨论】:
column count doesn't match value count at row 1 需要更新为:INSERT INTO source_table SELECT NULL, tt.* from temp_table tt;
试试
INSERT INTO new_table (attr1, attr2, attr3) SELECT oldatr1, oldatr2, oldatr3 FROM old_table WHERE <the filter you want>
如果 new_table 和 old_table 相同,它也可以工作。
【讨论】: