テーブルの外部キーをリストする方法 質問する

テーブルの外部キーをリストする方法 質問する

SQL を使用して特定のテーブルのすべての外部キーを一覧表示する方法はありますか? テーブル名とスキーマがわかっているので、それをプラグインできます。

ベストアンサー1

これは information_schema テーブルを介して実行できます。例:

SELECT
    tc.table_schema, 
    tc.constraint_name, 
    tc.table_name, 
    kcu.column_name, 
    ccu.table_schema AS foreign_table_schema,
    ccu.table_name AS foreign_table_name,
    ccu.column_name AS foreign_column_name 
FROM information_schema.table_constraints AS tc 
JOIN information_schema.key_column_usage AS kcu
    ON tc.constraint_name = kcu.constraint_name
    AND tc.table_schema = kcu.table_schema
JOIN information_schema.constraint_column_usage AS ccu
    ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
    AND tc.table_schema='myschema'
    AND tc.table_name='mytable';

逆の方法、つまりテーブルが外部テーブルとして使用されているすべての場所を見つける必要がある場合は、最後の 2 つの条件を次のように置き換えることができます。

    AND ccu.table_schema='myschema'
    AND ccu.table_name='mytable';

おすすめ記事