将一个表复制到另一个表,但id字段除外

时间:2014-08-28 21:26:27

标签: mysql copy field

我想将table1复制到table2,除了'id'字段,因为我希望table2中的'id'自动递增。

这是我尝试过的解决方案之一......但没有工作: “INSERT INTO table2 SELECT field1,field2,field3 FROM table1 WHERE member_id = '53'”

4 个答案:

答案 0 :(得分:2)

如果您(无论出于何种原因)想要为列命名,您可以选择NULL代替id。

假设您的两个表都包含member_idfield1field1field3列,您可以执行以下操作:

insert into table2 select NULL, field1, field2, field3 from table1 where member_id = '53';

注意:您必须使用此格式为所有列提供值。

答案 1 :(得分:1)

如果您不想填充目标表的所有列,则需要命名要填充的列

INSERT INTO table2 (table2_f1, table2_f2, table2_f3)
SELECT field1, field2, field3 
FROM table1 
WHERE member_id = '53'

答案 2 :(得分:0)

INSERT INTO table2(table2_f1,table2_f2,table2_f3) SELECT field1,field2,field3 FROM table1

如果将其设置为auto_increment

,则无需指定id

答案 3 :(得分:-1)

最佳答案...... 使用临时表!

示例表 a 和表 b 有 3 列 b 有 6 列 两个表都有第一列 id。(但我们不希望将列 id 复制到表 b)


CREATE TEMPORARY TABLE temp AS SELECT * FROM a WHERE id=5;
UPDATE temp
SET id = NULL;
INSERT INTO b
SELECT *,'EFG',33,'ABCD' FROM temp;
DROP TEMPORARY TABLE temp;