2017-06-19 54 views
1

我有兩個表,我想複製一行到另一個。但是,它們都使用自動遞增的ID號作爲主鍵,如果該ID已經存在於另一個表中,則會阻止我複製行。MySQL - 用新的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_2,市,縣,郵政編碼,電子郵件,電話,DATE_OF_BIRTH,Custom_Field,Marketing_Permission,PRODUCT_NAME ,Product_Options

+0

你可以發表你的表的列嗎? –

+0

也看看這裏: https://stackoverflow.com/questions/16108003/how-to-insert-values-into-auto-identity-column-in-mysql –

回答

1

您不能在這種情況下使用*(所有列)..你必須explicitally設置,需要安裝的列:

INSERT INTO tableB (col1, col2, col3) 
SELECT col1, col2, col3 
FROM tableA 
WHERE ID = 1 

avoinding ID列

+0

也許你的意思是「不能」,而不是「可以「? – Degan

+0

@Degan ..曼尼謝謝..答案更新.. – scaisEdge

+0

在所有的答案中,這最好的工作,因爲我需要在括號中列的列表。謝謝! – Edward1442

0

嘗試用字段列表替換星號withouth的ID

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

只需選擇列沒有ID。

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