Wie erhalte ich eine Liste aller Einschränkungen aus einer bestimmten Datenbank?
mysql
database-design
constraints
lolajl
quelle
quelle
Antworten:
Verwenden Sie die
information_schema.table_constraints
Tabelle, um die Namen der für jede Tabelle definierten Einschränkungen abzurufen:Verwenden Sie die
information_schema.key_column_usage
Tabelle, um die Felder in jeder dieser Einschränkungen abzurufen:Wenn Sie stattdessen über Fremdschlüsseleinschränkungen sprechen, verwenden Sie
information_schema.referential_constraints
:quelle
information_schema.columns.column_default
.Tolle Antwort von @Senseful.
Ich präsentiere eine modifizierte Abfrage für diejenigen, die nur nach einer Liste von Einschränkungsnamen (und nicht nach anderen Details / Spalten) suchen:
quelle
Dies ist sehr hilfreich, wenn Sie Primär- und Fremdschlüsseleinschränkungen sowie Regeln für diese Einschränkungen wie ON_UPDATE und ON_DELETE sowie die Spalten- und Fremdspaltennamen anzeigen möchten:
Möglicherweise möchten Sie sogar weitere Informationen zu diesen Spalten hinzufügen. Fügen Sie diese einfach in SQL ein (und wählen Sie die gewünschten Spalten aus):
quelle
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = "tabnam";
quelle