Problem:
Du vill hitta namnen på begränsningarna i en tabell i MySQL.
Exempel:
Vi vill visa namnen på begränsningarna i tabellen student
.
Lösning:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Här är resultatet:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
student | PRIMÄRNYCKEL | PRIMÄR |
student | UNIKT | personligt_nummer |
student | UTLANDSNYCKEL | student_ibfk_1 |
student | KONTROLLERA | student_chk_1 |
Diskussion:
Använd vyn table_constraints
i information_schema
schema. Den här vyn innehåller många kolumner, men de viktigaste är table_name
, constraint_type
och constraint_name
. Kolumnen tabellnamn ger dig namnet på tabellen där begränsningen är definierad och kolumnen constraint_name
innehåller namnet på begränsningen. Kolumnen constraint_type
anger typen av begränsning:PRIMARY KEY
för primärnyckeltypen, FOREIGN KEY
för den främmande nyckeltypen, UNIQUE
för de unika värdena och CHECK
för begränsningskontrollen. I vårt exempel kan du se begränsningen som heter PRIMARY
för primärnyckeln i student
tabell. constraint_type
kolumnen ger dig information om typen av varje begränsning; för primärnyckeln är det PRIMARY KEY
.