自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解MySQL數(shù)據(jù)庫(kù)刪除所有表的外鍵約束、禁用外鍵約束相關(guān)腳本

數(shù)據(jù)庫(kù) MySQL
在實(shí)際開發(fā)中,數(shù)據(jù)庫(kù)中一般不會(huì)存在外鍵,阿里的開發(fā)手冊(cè)中也強(qiáng)制不使用外鍵與級(jí)聯(lián)操作,一切外鍵概念必須在應(yīng)用層解決。如果數(shù)據(jù)庫(kù)中已存在外鍵了,這時(shí)候需要禁用或者刪除應(yīng)該怎么辦呢?

概述

數(shù)據(jù)庫(kù)的外鍵雖然能保證數(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ù)庫(kù)中一般不會(huì)存在外鍵,阿里的開發(fā)手冊(cè)中也強(qiáng)制不使用外鍵與級(jí)聯(lián)操作,一切外鍵概念必須在應(yīng)用層解決。如果數(shù)據(jù)庫(kù)中已存在外鍵了,這時(shí)候需要禁用或者刪除應(yīng)該怎么辦呢?

詳解MySQL數(shù)據(jù)庫(kù)刪除所有表的外鍵約束、禁用外鍵約束相關(guān)腳本

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

  1. -- 會(huì)話級(jí)別禁用外鍵約束 
  2. SET FOREIGN_KEY_CHECKS = 0
  3. -- 會(huì)話級(jí)別啟用外鍵約束 
  4. SET FOREIGN_KEY_CHECKS = 1
  5. -- 全局禁用外鍵約束 
  6. SET GLOBAL FOREIGN_KEY_CHECKS = 0
  7. 或者 SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0
  8. -- 全局啟用外鍵約束 
  9. SET GLOBAL FOREIGN_KEY_CHECKS = 1

修改完成后可以查看修改后的結(jié)果

  1. SELECT @@FOREIGN_KEY_CHECKS; 

詳解MySQL數(shù)據(jù)庫(kù)刪除所有表的外鍵約束、禁用外鍵約束相關(guān)腳本

2. 批量刪除所有表的外鍵

查詢schema中所有外鍵名稱然后拼接生成刪除語(yǔ)句,再執(zhí)行。

  1. SELECT 
  2.  CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ' ;' )  
  3. FROM 
  4.  information_schema.TABLE_CONSTRAINTS c  
  5. WHERE 
  6.  c.TABLE_SCHEMA = '數(shù)據(jù)庫(kù)名'  
  7.  AND c.CONSTRAINT_TYPE = 'FOREIGN KEY'

詳解MySQL數(shù)據(jù)庫(kù)刪除所有表的外鍵約束、禁用外鍵約束相關(guān)腳本

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2010-01-05 09:24:42

MySQL外鍵約束

2010-11-10 11:37:29

SQL Server刪

2010-06-17 17:50:31

SQL Server外

2010-09-25 13:16:51

SQL Server外

2010-04-23 15:44:29

Oracle 外鍵

2011-09-01 10:56:34

2010-09-25 11:50:47

sql server外

2018-11-29 14:30:42

數(shù)據(jù)庫(kù)外鍵約束應(yīng)用程序

2011-03-22 12:59:18

SQLOracle外鍵約束

2011-08-03 17:43:53

MySQL數(shù)據(jù)庫(kù)外鍵約束

2010-10-09 09:55:41

MySQL外鍵

2010-11-22 09:59:32

MySQL外鍵設(shè)置

2010-11-12 15:19:06

Sql Server外

2023-09-08 08:44:09

Oracle數(shù)據(jù)庫(kù)

2010-10-09 10:29:29

MySQL外鍵

2010-10-19 17:28:08

SQL SERVER外

2011-08-01 16:31:29

MySQL數(shù)據(jù)庫(kù)外鍵

2011-07-26 15:47:01

SQL Server數(shù)外鍵約束

2010-09-03 11:52:41

SQL刪除

2010-05-17 16:10:39

MySQL數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)