Problem:
Sie möchten die Namen der Constraints in einer MySQL-Tabelle finden.
Beispiel:
Wir wollen die Namen der Constraints in der Tabelle student
.
Lösung:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Hier ist das Ergebnis:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
Schüler | PRIMÄRSCHLÜSSEL | PRIMÄR |
Schüler | EINZIGARTIG | persönliche_nummer |
Schüler | Fremdschlüssel | student_ibfk_1 |
Schüler | ÜBERPRÜFEN | student_chk_1 |
Diskussion:
Verwenden Sie die Ansicht table_constraints
im information_schema
Schema. Diese Ansicht enthält viele Spalten, aber die wichtigsten sind table_name
, constraint_type
und constraint_name
. Die Spalte table_name gibt Ihnen den Namen der Tabelle an, in der die Einschränkung definiert ist, und die Spalte constraint_name
enthält den Namen der Einschränkung. Die Spalte constraint_type
gibt die Art der Einschränkung an:PRIMARY KEY
für den Primärschlüsseltyp FOREIGN KEY
für den Fremdschlüsseltyp UNIQUE
für die eindeutigen Werte und CHECK
für die Constraint-Prüfung. In unserem Beispiel sehen Sie die Einschränkung namens PRIMARY
für den Primärschlüssel im student
Tisch. Der constraint_type
Spalte gibt Ihnen Informationen über den Typ jeder Einschränkung; für den Primärschlüssel ist es PRIMARY KEY
.