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 .