MySQL - 使用新ID插入表

时间:2017-06-19 14:52:31

标签: mysql sql

我有两个表,我想将一行复制到另一个。但是,它们都使用自动递增ID号作为主键,如果ID已存在于另一个表中,则阻止我复制行。

我想做的是:

INSERT INTO tableB SELECT * FROM tableA WHERE ID = 1

我想的可能是将行存储为变量,暂时将ID设置为空白,然后一旦插入新表中,它将被分配下一个最高数字?

这样的事情可能吗?

编辑:

ID,Deal_ID,Redeemed_At,Wowcher_Code,Deal_Title,Customer_Name,House_Name_Number,Address_Line_1,Address_Line_2,City,County,Postcode,Email,Phone,Date_of_Birth,Custom_Field,Marketing_Permission,Product_Name,Product_Options

3 个答案:

答案 0 :(得分:1)

在这种情况下你不能使用*(所有列)..你必须明确设置你需要的列,例如:

/abc/xyz

避免使用ID列

答案 1 :(得分:1)

只需选择没有ID的列。

INSERT INTO tableB SELECT name,age,any_other_column FROM tableA WHERE ID = 1

答案 2 :(得分:0)

尝试使用不带ID的字段列表替换星号

INSERT INTO tableB SELECT Field1,Field2,Field3...FieldXX FROM tableA WHERE ID = 1