【MySQL】关闭外键约束检查

插入SQL之前,可以关闭外键约束检查

CREATE DATABASE IF NOT EXISTS exam;

SHOW VARIABLES LIKE 'collation%';
SHOW VARIABLES LIKE 'character%';

USE exam;

SET FOREIGN_KEY_CHECKS = 0;


















SET FOREIGN_KEY_CHECKS = 1;

数据库备份和恢复时,部分数据库是可以暂时关闭约束检查的,不过不同的数据库系统实现方式有所不同。 ### MySQLMySQL 中,可以通过设置系统变量来暂时关闭和开启约束检查关闭约束检查使用 `SET foreign_key_checks = 0;`,开启则使用 `SET foreign_key_checks = 1;`。示例如下: ```sql -- 关闭约束检查 SET foreign_key_checks = 0; -- 进行备份或恢复操作 -- ... -- 开启约束检查 SET foreign_key_checks = 1; ``` ### Oracle Oracle 可以通过禁用和启用约束来实现类似功能。禁用约束使用 `ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;`,启用则使用 `ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;`。示例如下: ```sql -- 禁用约束 ALTER TABLE child_table DISABLE CONSTRAINT fk_constraint; -- 进行备份或恢复操作 -- ... -- 启用约束 ALTER TABLE child_table ENABLE CONSTRAINT fk_constraint; ``` ### SQL Server 在 SQL Server 中,可以通过修改表的约束状态来暂时关闭和开启约束检查。禁用约束使用 `ALTER TABLE table_name NOCHECK CONSTRAINT constraint_name;`,启用则使用 `ALTER TABLE table_name CHECK CONSTRAINT constraint_name;`。示例如下: ```sql -- 禁用约束 ALTER TABLE child_table NOCHECK CONSTRAINT fk_constraint; -- 进行备份或恢复操作 -- ... -- 启用约束 ALTER TABLE child_table CHECK CONSTRAINT fk_constraint; ``` 需要注意的是,暂时关闭约束检查可能会导致数据不一致的风险,在操作完成后应及时恢复约束检查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值