数据传输服务 外键依赖检查(MySQL 系列前置校验不通过处理)

这篇说明MySQL系数据库间数据同步时外键依赖必须设置为NO ACTION或RESTRICT,否则报错,并提供了Windows和Linux下的修改操作指导,以及完善迁移对象的方法。 外键限制:同步时外键只能设为NO ACTION或RESTRICT,其他值会报错。 修改操作:Windows通过DMC平台,Linux通过SQL命令删除并重新添加外键。 迁移对象:需在任务中勾选所有有外键关联的表。

相关产品
数据传输服务 产品页,含版本规格、价格与购买入口。

一、检查详情

·MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL MySQL/TDSQL Boundless 之间的数据同步:外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务。

·部分库表迁移时,有外键依赖的表必须齐全。

二、外键依赖参数说明

MySQL 系类型的数据库在设置外键时,删除和更新有四个值可以选择。

·CASCADE:父表进行删除或者更新记录时,子表会同步删除或更新关联记录。

·SET NULL:父表进行删除或者更新记录时,子表会将关联记录的外键字段所在列设为 null(子表外键不能设为 not null)。

·RESTRICT:父表执行删除或更新记录时,如果子表中有关联该父表的记录,则拒绝该父表删除请求。

·NO ACTION:同 RESTRICT,也是首先检查外键。

·SET DEFAULT:父表进行删除或者更新记录时,子表将外键列设置成一个默认的值,但 InnoDB 引擎不能识别。

三、同步场景-修改外键参数

数据同步中,外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务,如需修复报错参考后续指导操作。

四、Windows 操作指导

1. 登录源数据库 DMC 平台。

2. 在左侧目标树上选中要修改的表,在打开的表编辑界面上,单击外键页签,修改外键参数。

3. 修改完成后,单击提交。

4. 重新执行校验任务。

五、Linux 操作指导

1. 登录源数据库。

2. 删除原来的外键设置。

alter table `表名称1` drop foreign key `外键名称1`;

3. 重新添加外键设置。

alter table `表名称1` add constraint `外键名称2` foreign key `表名称1`(`列名1`) references `表名称2`(`列名1`)on update no action on delete no action;

4. 重新执行校验任务。

六、完善迁移对象

修改迁移任务配置,在迁移对象中勾选具有关联关系的对象。

1. 在 DTS 控制台,选择对应的迁移任务,在操作列选择更多 > 修改。

2. 在迁移对象中勾选具有关联关系的对象。

3. 重新执行校验任务。

赞 (0)
上一篇 4天前
下一篇 4天前