回答:
まず、FOREIGN KEY
次の方法で制約名を見つけます。
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME, -- <<-- the one you want!
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'My_Table';
そして、次の方法で名前付き制約を削除できます。
ALTER TABLE My_Table DROP FOREIGN KEY My_Table_Constraint;
コメントで@SteffenWinklerが示唆しているように、異なるスキーマ/データベースにその名前のテーブルが複数ある場合は、where句にさらに述語を追加できます。
AND TABLE_SCHEMA = 'My_Database';
SHOW CREATE TABLE My_Table;
。
My_Table
。質問は、My_Table
他のテーブルが持つ制約を求めます。
AND TABLE_SCHEMA = 'My_Database';
上記のクエリを編集しました。参照テーブル名は参照されているテーブルであるため、参照テーブル名をテーブル名に変更しました。したがって、元のクエリの結果は、テーブルの外部キーを表示しません。
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME, -- <<-- the one you want!
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
Table_name = 'case_qualitycontrolcase' and constraint_name = f