我有两个表,我想将一行从一个表复制到另一个表。但是,它们都使用自动递增的 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
最佳答案
在这种情况下,您不能使用 *(所有列).. 您必须明确设置所需的列,例如:
INSERT INTO tableB (col1, col2, col3)
SELECT col1, col2, col3
FROM tableA
WHERE ID = 1
避免 ID 列
关于MySQL - 使用新 ID 插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44633771/