Problème :
Vous voulez trouver les noms des contraintes dans une table dans MySQL.
Exemple :
On veut afficher les noms des contraintes dans le tableau student
.
Solution :
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Voici le résultat :
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
étudiant | CLÉ PRIMAIRE | PRIMAIRE |
étudiant | UNIQUE | numéro_personnel |
étudiant | CLÉ ÉTRANGÈRE | student_ibfk_1 |
étudiant | VÉRIFIER | student_chk_1 |
Discussion :
Utilisez la vue table_constraints
dans le information_schema
schéma. Cette vue contient beaucoup de colonnes, mais les plus importantes sont table_name
, constraint_type
, et constraint_name
. La colonne table_name vous donne le nom de la table dans laquelle la contrainte est définie, et la colonne constraint_name
contient le nom de la contrainte. La colonne constraint_type
indique le type de contrainte :PRIMARY KEY
pour le type de clé primaire, FOREIGN KEY
pour le type de clé étrangère, UNIQUE
pour les valeurs uniques, et CHECK
pour la vérification des contraintes. Dans notre exemple, vous pouvez voir la contrainte nommée PRIMARY
pour la clé primaire dans le student
table. Le constraint_type
colonne vous donne des informations sur le type de chaque contrainte ; pour la clé primaire, c'est PRIMARY KEY
.