© Éditions Eyrolles
199
chapitre n° 5
Contrôle des données
q
CONSTRAINT_NAME pour renseigner le nom de la contrainte. Notez ici que MySQL
n’extrait pas le nom de ma contrainte (pk_Installer), sans doute est-ce le fait qu’elle
est déclarée également AUTO_INCREMENT.
q
CONSTRAINT_TYPE pour renseigner le type de chaque contrainte.
La valeur CHECK dans la colonne CONSTRAINT_TYPE n’est pas encore prise en charge. Vous
pouvez toutefois créer des tables avec des contraintes CHECK ; rien ne se passera si vous
insérez des données non valides et le dictionnaire restera cohérent en n’extrayant pas ces
informations.
Composition des contraintes d’une table
La vue KEY_COLUMN_USAGE décrit la composition des contraintes.
Positions
La requête suivante permet d’extraire la composition des contraintes de la table Installer
dans la base bdsoutou, et en particulier celle de l’unicité du couple (nPoste,nLog).
SELECT CONSTRAINT_NAME, COLUMN_NAME,
AS 'Position',
AS 'Position index'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'bdsoutou' AND TABLE_NAME='Installer';
+----------------------------+-------------+----------+----------------+
| CONSTRAINT_NAME
| COLUMN_NAME | Position | Position index |
+----------------------------+-------------+----------+----------------+
| PRIMARY
| numIns
|
1 |
NULL |
| un_installation
| nPoste
|
1 |
NULL |
| un_installation
| nLog
|
2 |
NULL |
| fk_Installer_nLog_Logiciel | nLog
|
1 |
1 |
| fk_Installer_nPoste_Poste | nPoste
|
1 |
1 |
+----------------------------+-------------+----------+----------------+
MySQL utilise :
q
ORDINAL_POSITION qui indique la position de la colonne dans la contrainte (débutant
à 1).
q
POSITION_IN_UNIQUE_CONSTRAINT est évaluée à NULL pour les index (unique et clé
primaire). Pour les clés étrangères composites, elle indique la position de la colonne dans
la contrainte.
Détails des contraintes référentielles
Cette même vue permet également de retrouver la nature de la référence pour chaque clé
étrangère.
ORDINAL_POSITION
POSITION_IN_UNIQUE_CONSTRAINT
199
chapitre n° 5
Contrôle des données
q
CONSTRAINT_NAME pour renseigner le nom de la contrainte. Notez ici que MySQL
n’extrait pas le nom de ma contrainte (pk_Installer), sans doute est-ce le fait qu’elle
est déclarée également AUTO_INCREMENT.
q
CONSTRAINT_TYPE pour renseigner le type de chaque contrainte.
La valeur CHECK dans la colonne CONSTRAINT_TYPE n’est pas encore prise en charge. Vous
pouvez toutefois créer des tables avec des contraintes CHECK ; rien ne se passera si vous
insérez des données non valides et le dictionnaire restera cohérent en n’extrayant pas ces
informations.
Composition des contraintes d’une table
La vue KEY_COLUMN_USAGE décrit la composition des contraintes.
Positions
La requête suivante permet d’extraire la composition des contraintes de la table Installer
dans la base bdsoutou, et en particulier celle de l’unicité du couple (nPoste,nLog).
SELECT CONSTRAINT_NAME, COLUMN_NAME,
AS 'Position',
AS 'Position index'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'bdsoutou' AND TABLE_NAME='Installer';
+----------------------------+-------------+----------+----------------+
| CONSTRAINT_NAME
| COLUMN_NAME | Position | Position index |
+----------------------------+-------------+----------+----------------+
| PRIMARY
| numIns
|
1 |
NULL |
| un_installation
| nPoste
|
1 |
NULL |
| un_installation
| nLog
|
2 |
NULL |
| fk_Installer_nLog_Logiciel | nLog
|
1 |
1 |
| fk_Installer_nPoste_Poste | nPoste
|
1 |
1 |
+----------------------------+-------------+----------+----------------+
MySQL utilise :
q
ORDINAL_POSITION qui indique la position de la colonne dans la contrainte (débutant
à 1).
q
POSITION_IN_UNIQUE_CONSTRAINT est évaluée à NULL pour les index (unique et clé
primaire). Pour les clés étrangères composites, elle indique la position de la colonne dans
la contrainte.
Détails des contraintes référentielles
Cette même vue permet également de retrouver la nature de la référence pour chaque clé
étrangère.
ORDINAL_POSITION
POSITION_IN_UNIQUE_CONSTRAINT
