外键
查询一个表的主键是哪些表的外键
1 | SELECT |
导出所有外键语句
1 | SELECT |
删除所有外键语句
1 | SELECT |
自增
导出创建自增字段的语句
1 | SELECT |
创建删除所有自增字段
1 | SELECT |
索引
导出所有索引
1 | SELECT |
删除所有索引
1 | SELECT |
数据合并
在数据迁移合并的时候,比较棘手的是不同数据库主键重复,那么我们就要批量修改主键的值,为了避免重复我们可以把自增的数字改为字符串
步骤基本上有以下几步
- 取消主键自增
- 删除所有外键
- 修改主键字段为varchar
- 添加所有外键
- 修改主键的值
- 合并数据
修改主键值的时候要注意
如果包含id和pid这种自关联的情况下是不能直接修改值的,就需要先删除约束再添加。
比如
删除自约束
1 | ALTER TABLE `t_director` DROP FOREIGN KEY `fk_directorpid`; |
修改值
1 | update t_director set directorid=directorid+100000000; |
添加自约束
1 | ALTER TABLE t_director ADD CONSTRAINT fk_directorpid FOREIGN KEY (directorpid) REFERENCES t_director(directorid) ON DELETE CASCADE ON UPDATE CASCADE; |
注意
CONV(directorpid,10,36)后两个参数为原数字进制和要转换后的进制。
第一个参数只要内容是数字就算类型为varchar也可以转换。