2016-05-04 27 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增量键会自动增加。