MySQL數(shù)據(jù)庫中怎么刪除所有表的外鍵約束,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務宜黃,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
概述
數(shù)據(jù)庫的外鍵雖然能保證數(shù)據(jù)數(shù)據(jù)一致性和完整性,但是也一定程度地影響了數(shù)據(jù)更新的性能。在開發(fā)中,我們使用PowerDesigner建立物理數(shù)據(jù)模型時,為了結(jié)構(gòu)的清晰,增加可讀性,會創(chuàng)建表與表之間的關(guān)聯(lián)關(guān)系。
在實際開發(fā)中,數(shù)據(jù)庫中一般不會存在外鍵,阿里的開發(fā)手冊中也強制不使用外鍵與級聯(lián)操作,一切外鍵概念必須在應用層解決。如果數(shù)據(jù)庫中已存在外鍵了,這時候需要禁用或者刪除應該怎么辦呢?
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;
修改完成后可以查看修改后的結(jié)果
SELECT @@FOREIGN_KEY_CHECKS;
2. 批量刪除所有表的外鍵
查詢schema中所有外鍵名稱然后拼接生成刪除語句,再執(zhí)行。
SELECT CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ' ;' ) FROM information_schema.TABLE_CONSTRAINTS c WHERE c.TABLE_SCHEMA = '數(shù)據(jù)庫名' AND c.CONSTRAINT_TYPE = 'FOREIGN KEY';
看完上述內(nèi)容,你們掌握MySQL數(shù)據(jù)庫中怎么刪除所有表的外鍵約束的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
標題名稱:MySQL數(shù)據(jù)庫中怎么刪除所有表的外鍵約束
鏈接URL:http://aaarwkj.com/article40/jjheho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、微信小程序、品牌網(wǎng)站設計、面包屑導航、App開發(fā)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)