2016-05-04 28 views
1

我試着從一個數據庫導入數據到另一個,但我想導入到只需插入值,而相應的ID的MySQL的進口沒有ID

所以可以說我有1000行。我希望我的導入從1001向上繼續。 但是我的導出從1開始,所以它顯然只是想要替換數據,並且我得到一個完整性約束錯誤。

如何我只是做一個簡單的插入與數據,並獲得新的ID,而不是進口試圖與導出的ID的

+0

您正在使用ID上的自動增量導入表格嗎? – guiguiblitz

+0

是的,只需要讓它忽略導入 – KyleK

+0

上的ID,然後僅選擇要忽略該ID的列並插入它。 –

回答

0

您的所有原始列名,以取代舊的數據

select * from information_schema.columns 
where table_schema = 'orig table' 

然後

Asuming它作爲導入表自動遞增,我會做:

SELECT --allcolumns exept ID from the original table 
INTO --new table 
FROM --original table 
+0

所以唯一的方法是輸入所有199列然後呃?該死......好吧 – KyleK

+0

做一個選擇,首先從information_schema.columns獲取所有列名 – guiguiblitz

0

執行此操作的一種方法是將表複製到新表中(如果可能,請將其保存到新數據庫中,以便保留表名,但如果主機不允許訪問,則可以在導出時對其進行重命名) 。使用操作選項卡複製表格。

一旦你有了副本,你可以放棄你不再需要的列。使用Structure選項卡中的下拉鍊接。

現在您擁有了您想要的數據,因此您可以使用「導出」選項卡轉儲到.sql文件。在創建出口,選擇「數據」而已,而不是「結構和數據」:

data dialog

如果你想,在這個時候,你可以,如果你使用的「重命名導出數據庫/表/列」功能希望重新命名錶格。導入到您的新數據庫中,並且全部設置完成。只要(1)在導出中沒有auto_increment列,並且(2)表名和其餘結構與.sql文件和新表格匹配,其餘值將被導入,並且auto增量鍵會自動增加。