tft每日頭條

 > 科技

 > mysql中删除外鍵

mysql中删除外鍵

科技 更新时间:2024-12-05 11:15:30
概述

數據庫的外鍵雖然能保證數據數據一緻性和完整性,但是也一定程度地影響了數據更新的性能。在開發中,我們使用PowerDesigner建立物理數據模型時,為了結構的清晰,增加可讀性,會創建表與表之間的關聯關系。

在實際開發中,數據庫中一般不會存在外鍵,阿裡的開發手冊中也強制不使用外鍵與級聯操作,一切外鍵概念必須在應用層解決。如果數據庫中已存在外鍵了,這時候需要禁用或者删除應該怎麼辦呢?

mysql中删除外鍵(mysql外鍵相關腳本總結--删除所有表的外鍵約束)1


1、修改MySQL變量FOREIGN_KEY_CHECKS(批量禁用啟用所有表的外鍵)

-- 會話級别禁用外鍵約束 SET FOREIGN_KEY_CHECKS = 0; -- 會話級别啟用外鍵約束 SET FOREIGN_KEY_CHECKS = 1; -- 全局禁用外鍵約束 SET GLOBAL FOREIGN_KEY_CHECKS = 0; 或者 SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0; -- 全局啟用外鍵約束 SET GLOBAL FOREIGN_KEY_CHECKS = 1;

修改完成後可以查看修改後的結果

SELECT @@FOREIGN_KEY_CHECKS;

mysql中删除外鍵(mysql外鍵相關腳本總結--删除所有表的外鍵約束)2


2、批量删除所有表的外鍵

查詢schema中所有外鍵名稱然後拼接生成删除語句,再執行。

SELECT CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ' ;' ) FROM information_schema.TABLE_CONSTRAINTS c WHERE c.TABLE_SCHEMA = '數據庫名' AND c.CONSTRAINT_TYPE = 'FOREIGN KEY';

mysql中删除外鍵(mysql外鍵相關腳本總結--删除所有表的外鍵約束)3


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的内容,感興趣的朋友可以關注下~

mysql中删除外鍵(mysql外鍵相關腳本總結--删除所有表的外鍵約束)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved