关于mysql的违建约束粒度,是否能禁用单个外键

只一刀 2017-06-05 05:49:10
各位大神好,我想在mysql上实现一个功能,对一个表的数据进行更新(数据量在百万级),需先禁用掉这个表的所有外键关系,然后清空所有数据,在插入数据。
在oracle系统下是有禁用单个外键的语法的: alter table TABLE_NAME disable constraint CONSTRAINT_NAME
但是在mysql下对外键约束管理粒度好像没有那么细。
不知道mysql 除了 SET FOREIGN_KEY_CHECKS=0; 这个语法外还有其他语法可以操作外键吗?

...全文
196 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-06-06
  • 打赏
  • 举报
回复
foreign_key_checks 是SESSION级别的,不是事务级别的。中断连接后会无效。
只一刀 2017-06-06
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
MYSQL没有单独禁止单一表的外键。
那有禁用全部的吗, SET FOREIGN_KEY_CHECKS=0; 经测试好像是事务级别的,退出事务后设置就无效了
ACMAIN_CHM 2017-06-05
  • 打赏
  • 举报
回复
MYSQL没有单独禁止单一表的外键。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧