首页 > 解决方案 > mysqldump 丢失了外键约束的引用动作子句

问题描述

转储后

mysqldump --no-data -h localhost -u root -p my_db | sed 's/ AUTO_INCREMENT=[0-9]*//g' > $DEST_FILE

部分外键约束丢失如下:

起源:

  CONSTRAINT `fk_owner_id_app_group` FOREIGN KEY (`owner_id`) REFERENCES `app_user` (`app_user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT

后:

CONSTRAINT `fk_owner_id_app_group` FOREIGN KEY (`owner_id`) REFERENCES `app_user` (`app_user_id`)

ON DELETE RESTRICT ON UPDATE RESTRICT部分丢失。
导出期间未发出错误或警告。
检查 mysqldump 手册,没有找到任何相关选项。https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html 有人经历过吗?这是一个 mysqldump 错误吗?

这里的环境是。
mysqldump Ver 10.13 Distrib 5.7.25,适用于 Linux (x86_64)
mysql Ver 14.14 Distrib 5.7.25,适用于使用 EditLine 包装器的 Linux (x86_64)

标签: mysql

解决方案


简单的答案是,它被省略了,因为无论如何它都是默认值。

手册

  • RESTRICT:拒绝对父表的删除或更新操作。指定 RESTRICT(或 NO ACTION)与省略 ON DELETE 或 ON UPDATE 子句相同。

对于未指定的 ON DELETE 或 ON UPDATE,默认操作始终是 RESTRICT。


推荐阅读