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';