問題:
MySQLのテーブルで制約の名前を見つけたいと考えています。
例:
テーブルstudent
。
解決策:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
結果は次のとおりです。
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
学生 | 主キー | プライマリ |
学生 | ユニーク | personal_number |
学生 | 外部キー | student_ibfk_1 |
学生 | チェック | student_chk_1 |
ディスカッション:
ビューtable_constraints
information_schema
スキーマ。このビューには多くの列が含まれていますが、最も重要なのはtable_name
です。 、constraint_type
、およびconstraint_name
。列table_nameは、制約が定義されているテーブルの名前と、列constraint_name
を示します。 制約の名前が含まれます。列constraint_type
制約のタイプを示します:PRIMARY KEY
主キータイプの場合、FOREIGN KEY
外部キータイプの場合、UNIQUE
一意の値については、CHECK
制約チェック用。この例では、PRIMARY
という名前の制約を確認できます。 student
テーブル。 constraint_type
列には、各制約のタイプに関する情報が表示されます。主キーの場合は、PRIMARY KEY
です。 。