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