2017-10-19 61 views
3

我在MySQL Workbench中創建了一個DB模型和EER圖。我使用工作臺腳本功能編寫腳本來生成代碼,以便在MySQL服務器上導出和創建數據庫後使用該數據庫。如何在腳本編寫MySQL Workbench時找到外鍵

當我遍歷表時,有什麼辦法可以找到連接到當前表的外鍵?

表對象上有一個'foreignKeys'屬性,但它只包含指向AWAY的外鍵,而不是指向它的指針。我想知道其他表有哪些外鍵鏈接到當前表的主鍵(理想情況下,沒有循環遍歷模型中每個其他表的每一列)。

回答

3

您可以使用下面的查詢來檢索數據庫中的所有約束/外鍵..

SELECT 
    TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE 
    REFERENCED_TABLE_SCHEMA = 'database_name'; 

更具體到你的問題,你可以使用下面的查詢..

SELECT 
    TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE 
    REFERENCED_TABLE_SCHEMA = 'database_name' AND 
    REFERENCED_TABLE_NAME = 'table_name'; 
+0

我沒有看到我如何在沒有創建數據庫的模型上的MySQL Workbench中運行此功能。那可能嗎? –

+0

到目前爲止,沒有功能可以從EER圖表中列出FK。我認爲上面的SQL是獲得所需信息的最快捷的解決方案,但是您需要在臨時模式中創建表1st。 – Sh4m

+1

謝謝你的回答。這不是我想要的答案。 :)但它是準確的,你提供了我想要的下一個最好的東西。 –