Problém:
Chcete najít názvy omezení v tabulce v MySQL.
Příklad:
Názvy omezení chceme zobrazit v tabulce student
.
Řešení:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Zde je výsledek:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
student | PRIMÁRNÍ KLÍČ | PRIMÁRNÍ |
student | JEDINEČNÉ | personal_number |
student | CIZI KLÍČ | student_ibfk_1 |
student | ZKONTROLUJTE | student_chk_1 |
Diskuse:
Použijte zobrazení table_constraints
v information_schema
schéma. Toto zobrazení obsahuje mnoho sloupců, ale nejdůležitější jsou table_name
, constraint_type
a constraint_name
. Sloupec název_tabulky uvádí název tabulky, ve které je omezení definováno, a sloupec constraint_name
obsahuje název omezení. Sloupec constraint_type
označuje typ omezení:PRIMARY KEY
pro typ primárního klíče FOREIGN KEY
pro typ cizího klíče UNIQUE
pro jedinečné hodnoty a CHECK
pro kontrolu omezení. V našem příkladu můžete vidět omezení s názvem PRIMARY
pro primární klíč u student
stůl. constraint_type
sloupec poskytuje informace o typu každého omezení; pro primární klíč je to PRIMARY KEY
.