我试图将数据从一个数据库导入到另一个数据库,但我希望导入只插入没有相应ID的值
所以我想说我有1000行。我希望我的导入从1001向上继续。 但我的导出从1开始,所以显然只是想替换数据,我得到了完整性约束错误。
如何只对数据执行简单插入操作,并获取新ID而不是导入尝试使用导出的ID替换旧数据
答案 0 :(得分:0)
使用
获取所有原始列名称select * from information_schema.columns
where table_schema = 'orig table'
然后
将其视为导入表上的自动增量,我会这样做:
SELECT --allcolumns exept ID from the original table
INTO --new table
FROM --original table
答案 1 :(得分:0)
执行此操作的一种方法是将表复制到新表(如果可能,将其复制到新数据库中,以便保留表名,但如果主机不授予您访问权限,则可以在导出时重命名) )。使用“操作”选项卡复制表。
获得副本后,您可以删除不再需要的列。使用Structure选项卡中的Drop链接。
现在您可以准确地获得所需数据,因此您可以使用“导出”选项卡转储到.sql文件。创建导出时,只选择“数据”,而不是“结构和数据”:
如果需要,此时可以使用“重命名导出的数据库/表/列”功能(如果要重命名表)。导入到新数据库并且您已完成所有设置。只要(1)你没有在导出中出现auto_increment列,并且(2)你的表名和结构的其余部分在.sql文件和新表之间匹配,剩下的值将被导入并且自动增量键将自动正常增加。
答案 2 :(得分:0)
您只需从源表中删除id列即可。