批量生成删除外键的语句:
SELECT CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,' ;')
FROM information_schema.TABLE_CONSTRAINTS c
WHERE c.TABLE_SCHEMA='schemaName' and table_name ='tableName' AND c.CONSTRAINT_TYPE='FOREIGN KEY';
查询所有的外键约束
SELECT * FROM information_schema.TABLE_CONSTRAINTS where table_schema='ltms' and CONSTRAINT_type= 'FOREIGN KEY';
临时关闭外键约束
-- 禁用外键约束
SET FOREIGN_KEY_CHECKS = 0
-- 启用外键约束
SET FOREIGN_KEY_CHECKS = 1;
由于FOREIGN_KEY_CHECKS是基于session的,当关闭了session重新建立连接,这个变量就会恢复默认值,也就是开启外键约束,当然我们也可以全局的FOREIGN_KEY_CHECKS变量。
SET GLOBAL FOREIGN_KEY_CHECKS = 0;
或者:
SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0;
修改完成后,我们可以查看修改后的结果
SELECT @@FOREIGN_KEY_CHECKS;
网友评论