Comment obtenir une liste de toutes les contraintes d'une base de données particulière?
mysql
database-design
constraints
lolajl
la source
la source
Réponses:
Utilisez la
information_schema.table_constraints
table pour obtenir les noms des contraintes définies sur chaque table:Utilisez le
information_schema.key_column_usage
tableau pour obtenir les champs de chacune de ces contraintes:Si à la place vous parlez de contraintes de clé étrangère, utilisez
information_schema.referential_constraints
:la source
information_schema.columns.column_default
.Excellente réponse de @Senseful.
Je présente une requête modifiée pour ceux qui recherchent uniquement une liste de noms de contraintes (et pas d'autres détails / colonnes):
la source
Cela aide vraiment si vous voulez voir les contraintes de clé primaire et étrangère ainsi que les règles autour de ces contraintes telles que ON_UPDATE et ON_DELETE et les noms de colonne et de colonne étrangère tous ensemble:
Vous pouvez même ajouter des informations supplémentaires sur ces colonnes, ajoutez simplement ceci dans le SQL (et sélectionnez les colonnes que vous voulez):
la source
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = "tabnam";
la source