Mysql 使用字段重新映射在同一服务器上复制表数据

Mysql 使用字段重新映射在同一服务器上复制表数据,mysql,enums,Mysql,Enums,我需要将包含数百万行的旧表的数据复制到定义稍有不同的新表中。最重要的是,有一个新字段的默认值为null,而varchar字段变成了具有直接映射值的枚举 旧表: id:整数 类型:varchar 新表格: id:整数 类型:枚举 数字:整数,默认为空 类型的所有可能字符串值都在新枚举中 我尝试了以下方法: insert into new.table select * from old.table 但我显然明白: 插入值列表与列列表不匹配:1136列计数与第1行的值计数不匹配 您可以从phpmya

我需要将包含数百万行的旧表的数据复制到定义稍有不同的新表中。最重要的是,有一个新字段的默认值为null,而varchar字段变成了具有直接映射值的枚举

旧表:

id:整数 类型:varchar 新表格:

id:整数 类型:枚举 数字:整数,默认为空 类型的所有可能字符串值都在新枚举中

我尝试了以下方法:

insert into new.table select * from old.table
但我显然明白:

插入值列表与列列表不匹配:1136列计数与第1行的值计数不匹配


您可以从phpmyadmin窗口复制表数据和结构,然后修改新表并添加新列

使用插入。。。选择:


显然,varchar到enum的重新映射不是问题。

插入到t1 x、y、z中,从t2I选择a、b、c不能使用图形界面;我从脚本中调用它。CREATE TABLE new.TABLE LIKE old_TABLE;尽我所知复制结构并插入新表。从旧表选择*;复制数据,同时使用保留字(如table)会导致问题
INSERT INTO new.table `id`, `type` SELECT `id`, `type` FROM old.table