为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:win10
【CPU】:
【问题描述】*:从mysql迁移到达梦,表的外键全都添加失败了
可以分批次迁移内容,然后迁移之前可以调整数据库的COMPATIBLE_MODE参数为4,另外使用的迁移工具版本最好跟数据库版本对应一致
可以参照下这个的解决方式,外键在最后一步进行迁移。
https://eco.dameng.com/document/dm/zh-cn/faq/faq-oracle-dm8-migrate.html#%E8%BF%9D%E5%8F%8D%E5%BC%95%E7%94%A8%E7%BA%A6%E6%9D%9F
一般推荐客户如下操作,可以避免由于外键约束的失败。
1.迁移表定义,有主键就行。不要其他约束/索引/触发器
2.就迁移数据。不要其他约束/索引/触发器
3.最后迁移约束/索引/触发器
当然如果在源库没有关闭的情况下,因为不能保证数据与约束的一致性。可能还是需要人为处理部分约束的,但不会大面积有问题
首先你要保证外键创建本身表和依赖的表都有,也就是对应表要先创建过去,然后再迁移外键,这种方式是最好的。
如果还有部分报错的,可以把sql拿到达梦客户端里去执行下看下,是否有特殊的mysql语法的,这部分可以再换成达梦的,创建进去。
检查下具体报错,看是否因为外键名称重复导致外键创建失败;另外,可将达梦升级为最新版本,有对外键迁移的优化;