tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议

外键依赖检查

PDF
聚焦模式
字号
最后更新时间: 2026-02-11 14:58:22

检查详情

MySQL/MariaDB/Percona/TDSQL-C MySQL 之间的数据迁移:外键依赖支持 CASCADE、SET NULL、RESTRICT、NO ACTION、SET DEFAULT,需要在校验项中开启外键依赖开关。
MySQL/MariaDB/Percona/TDSQL-C MySQL 之间的数据同步:外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务。
TDSQL MySQL 的迁移和同步:外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务。
TDSQL TDStore 数据迁移:不支持外键依赖数据,如果源库中有外键数据校验会报错。
部分库表迁移时,有外键依赖的表必须齐全。

外键依赖参数说明

MySQL 系类型的数据库在设置外键时,删除和更新有四个值可以选择。
CASCADE:父表进行删除或者更新记录时,子表会同步删除或更新关联记录。
SET NULL:父表进行删除或者更新记录时,子表会将关联记录的外键字段所在列设为 null(子表外键不能设为 not null)。
RESTRICT:父表执行删除或更新记录时,如果子表中有关联该父表的记录,则拒绝该父表删除请求。
NO ACTION:同 RESTRICT,也是首先检查外键。
SET DEFAULT:父表进行删除或者更新记录时,子表将外键列设置成一个默认的值,但 InnoDB 引擎不能识别。

忽略报错或开启外键依赖关系迁移

对于 MySQL/MariaDB/Percona/TDSQL-C MySQL 之间的数据迁移,外键依赖支持 CASCADE、SET NULL、RESTRICT、NO ACTION、SET DEFAULT。
DTS 默认支持 RESTRICT,NO ACTION,如果源数据库迁移的数据中存在其他类型的外键依赖配置,校验系统会报错,需要用户按照如下指导在校验项中开启外键依赖。
1. 在数据迁移操作中的校验任务页面,源库存在外键依赖规则 CASCADE、SET NULL、SET DEFAULT,校验项报错,查看校验项详情。
2. 根据情况选择忽略报错,或者迁移外键依赖关系。确认无误后勾线风险知会,单击确认
选项
说明
屏蔽外键依赖检查报错
勾选后忽略已有的校验报错,继续迁移任务。
源库中存在外键规则 CASCADE、SET NULL、SET DEFAULT,仍可以进行迁移,但屏蔽报错后可能出现因为父表进行删除或者更新操作,导致目标库和源库的数据结果不一致。
迁移外键依赖关系
勾选后支持迁移 CASCADE、SET NULL、SET DEFAULT 类型的外键依赖关系,但 DTS 仅在任务发起时检查外键依赖关系,保证存量数据迁移到目标库的一致性。
1. 任务迁移过程中不要修改源库中的外键依赖规则,否则将导致目标库数据与源库不一致。 如在迁移过程中,将源库外键规则从 CASCADE 修改为 NO ACTION,目标库中父表的更新及删除操作仍会影响子表。
2. 在外键规则为 CASCADE 或 SET NULL 时,勾选迁移外键依赖关系后,在全量迁移阶段会对源库短暂加表锁,影响时间约 5-10 秒。
3. 为了保证数据的一致性,在增量同步阶段,对外键相关表的数据传输将从行级同步降级为表级同步,性能会有所下降。
3. 重新执行校验任务。

修复报错

MySQL/MariaDB/Percona/TDSQL-C MySQL 之间的数据同步:外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务,如需修复报错请如下指导操作。
TDSQL MySQL 的迁移和同步:外键依赖只能设置为 NO ACTION、RESTRICT,设置为其他校验将报错,但用户可选择修复报错或者忽略报错继续任务,如需修复报错请如下指导操作。
TDSQL MySQL(TDStore):不支持外键依赖数据,请删除对应的外键参数内容才能继续任务。

修改外键规则

Windows 操作指导

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

3. 修改完成后,单击保存
4. 重新执行校验任务。

Linux 操作指导

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. 重新执行校验任务。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈