MySQL外键检查会影响整个数据库吗?


foreign_key_checks 是基于会话的。现在,我们可以说它们是针对范围的,即本地或全局的。这是一个演示本地或全局的示例。两者都是范围,我们可以为会话设置此范围。

我们来设置范围 −

mysql> set foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global foreign_key_checks = 0;
Query OK, 0 rows affected (0.05 sec)

foreign_key_checks 变量是服务器系统变量。这里还有一些更详细的信息 −

属性
系统变量foreign_key_checks
范围全局、会话
动态
类型布尔
默认值ON

设置 foreign_key_checks 为 0

它影响数据定义语句:即使包含表格有外键(是指模式外部表格的外键)的模式,DROP SCHEMA 也会删除该模式,而 DROP TABLE 会删除有外键(是指其他表格的外键)的表格。

设置 foreign_key_checks 为 1

它不会触发现有表格数据的扫描。因此,在 foreign_key_checks=0 时添加到表格的行不会被验证是否一致。

更新于:2020 年 6 月 26 日

4K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始
宣传