我有两个表,我想将一行复制到另一个。但是,它们都使用自动递增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
答案 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