MySQL 檢視資料庫中有主外來鍵關係的表資訊

maohaiqing0304發表於2015-06-25


標題:MySQL 檢視資料庫中有主外來鍵關係的表資訊 

作者:lōττéry©版權所有[文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任.]


SQL:
     SELECT C.TABLE_SCHEMA            擁有者,
           C.REFERENCED_TABLE_NAME  父表名稱 ,
           C.REFERENCED_COLUMN_NAME 父表欄位 ,
           C.TABLE_NAME             子表名稱,
           C.COLUMN_NAME            子表欄位,
           C.CONSTRAINT_NAME        約束名,
           T.TABLE_COMMENT          表註釋,
           R.UPDATE_RULE            約束更新規則,
           R.DELETE_RULE            約束刪除規則
      FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C
      JOIN INFORMATION_SCHEMA. TABLES T
        ON T.TABLE_NAME = C.TABLE_NAME
      JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R
        ON R.TABLE_NAME = C.TABLE_NAME
       AND R.CONSTRAINT_NAME = C.CONSTRAINT_NAME
       AND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAME
      WHERE C.REFERENCED_TABLE_NAME IS NOT NULL ;     

UPDATE/DELETE_RULE 型別:
 1. CASCADE: 從父表中刪除或更新對應的行 同時自動的刪除或更新自表中匹配的行 ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支援 
 2. SET NULL: 從父表中刪除或更新對應的行 同時將子表中的外來鍵列設為空 注意 這些在外來鍵列沒有被設為NOT NULL時才有效 ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支援 
  3. NO ACTION: InnoDB拒絕刪除或者更新父表 
  4. RESTRICT: 拒絕刪除或者更新父表 指定RESTRICT 或者NO ACTION 和忽略ON DELETE或者ON UPDATE選項的效果是一樣的 
 5. SET DEFAULT: InnoDB目前不支援 

表資訊參考列表:
REFERENTIAL_CONSTRAINTS表註釋參考:  
KEY_COLUMN_USAGE表註釋參考:  


  【源於本人筆記】 若有書寫錯誤,表達錯誤,請指正... 


此條目發表在 SQL、SQL最佳化篇 分類目錄。將固定連線加入收藏夾。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-1711771/,如需轉載,請註明出處,否則將追究法律責任。

相關文章