无ID的MySQL导入

无ID的MySQL导入,mysql,phpmyadmin,Mysql,Phpmyadmin,我试图将数据从一个数据库导入到另一个数据库,但我希望导入只插入没有相应ID的值 假设我有1000行。我希望我的导入从1001继续向上。 但是我的导出从1开始,所以它显然只是想替换数据,我得到了一个完整性约束错误 如何简单地插入数据,并获取新的ID,而不是试图用导出的ID替换旧数据的导入 select * from information_schema.columns where table_schema = 'orig table' 然后 将其作为导入表上的自动增量,我将执行以下操作: SEL

我试图将数据从一个数据库导入到另一个数据库,但我希望导入只插入没有相应ID的值

假设我有1000行。我希望我的导入从1001继续向上。 但是我的导出从1开始,所以它显然只是想替换数据,我得到了一个完整性约束错误


如何简单地插入数据,并获取新的ID,而不是试图用导出的ID替换旧数据的导入

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

将其作为导入表上的自动增量,我将执行以下操作:

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

使用获取所有原始列名

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

将其作为导入表上的自动增量,我将执行以下操作:

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

一种方法是将表复制到一个新表中(如果可能的话,复制到一个新的数据库中,这样您可以保留表名,但是如果您的主机不允许您访问,您可以在导出时重命名它)。使用“操作”选项卡复制表

一旦有了副本,就可以删除不再需要的列。使用“结构”选项卡中的下拉链接

现在您已经完全掌握了所需的数据,因此可以使用“导出”选项卡转储到.sql文件。创建导出时,仅选择“数据”,而不是“结构和数据”:


如果需要,此时如果希望重命名表,可以使用“重命名导出的数据库/表/列”功能。导入到您的新数据库,您就一切就绪了。只要(1)导出中没有auto_increment列,(2)表名和.sql文件与新表之间的其余结构匹配,其余值将被导入,auto increment键将正常自动递增。

一种方法是将表复制到新表中(如果可能,请将其导入到新数据库中,以便保留表名,但如果主机未授予您访问权限,则可以在导出时对其重命名)。使用“操作”选项卡复制表

获得副本后,可以删除不再需要的列。使用“结构”选项卡中的“删除”链接

现在,您已经完全掌握了所需的数据,因此可以使用“导出”选项卡转储到.sql文件。创建导出时,只选择“数据”,而不选择“结构和数据”:


如果需要,此时如果希望重命名表,可以使用“重命名导出的数据库/表/列”功能。导入到新数据库后,一切都已就绪。只要(1)导出中不存在自动增量列,以及(2)您的表名和结构的其余部分在.sql文件和新表之间匹配,其余值将被导入,自动递增键将正常自动递增。

您只需从源表中删除id列。

您只需从源表中删除id列。

就是您要输入的表在id上使用autoincrement进行移植?是的,只需要让它忽略导入上的id,然后只选择要忽略id的列并插入它。请显示用于在两个表之间移动数据的代码。我想这就是答案,但是我有200列,有没有简单的方法可以忽略id,除了键入所有包含199个列名的SELECT语句外?您要导入的表是否在id上使用自动增量?是的,只需让它忽略导入上的id,然后只选择要忽略id的列并插入。请显示用于在两个表之间移动数据的代码。Igured这就是答案,但是我有200个列,除了键入包含所有199个列名的SELECT语句之外,还有什么简单的方法可以省略ID吗?所以唯一的方法是键入所有199个列,呃?该死…好的,首先从信息模式中选择所有列名。Columnso唯一的方法是键入所有199个列umns out然后呢?该死…好的,首先从information_schema.columns中选择所有列名