【发布时间】:2013-02-12 06:38:41
【问题描述】:
我在 MySql 数据库中有一个表“tb_products”,其中字段“ID”作为主键并自动递增; SQL 中按 ID 选择多条记录并使用新的递增 ID 将它们复制到同一个表中的最佳做法是什么?
【问题讨论】:
我在 MySql 数据库中有一个表“tb_products”,其中字段“ID”作为主键并自动递增; SQL 中按 ID 选择多条记录并使用新的递增 ID 将它们复制到同一个表中的最佳做法是什么?
【问题讨论】:
INSERT INTO tb_products
SELECT NULL id, field1, field2, field3, ...
FROM tb_products
WHERE id IN (id1, id2, id3, ...)
SELECT子句中的字段列表应该是除id之外的所有字段。
【讨论】:
SELECT 中的字段需要与您要插入的表中的字段数相匹配。如果不想复制id,则需要SELECT NULL,或者在INSERT(INSERT INTO table(field1,field2,...))中添加字段列表。
INSERT INTO NewTbl(Field_1,Field_2,...)
SELECT Field_1,Field_2,...
FROM OldTbl;
【讨论】:
使用mysql的insert selecthttp://dev.mysql.com/doc/refman/5.1/en/insert-select.html,在现有表中选择时,只需省略选择id,让新表生成新的id
【讨论】: