Syntaxe
Contrainte monochamp :
CONSTRAINT name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES tableétrangère [(champétranger1, champétranger2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}
Contrainte multichamp :
CONSTRAINT nom
{PRIMARY KEY (primaire1[, primaire2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
NOT NULL (nonnull1[, nonnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, ...]]) REFERENCES tableétrangère [(champétranger1 [, champétranger2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}
La clause CONSTRAINT se compose des éléments suivants :
Élément Description
nom Nom de la contrainte à créer.
primaire1, primaire2 Nom du ou des champs à spécifier commeclé primaire.
unique1, unique2 Nom du ou des champs à spécifier comme clé unique.
nonnull1, nonnull2 Nom du ou des champs ne devant pas contenir la valeurNull.
ref1, ref2 Nom du ou des champs declé étrangère faisant référence à des champs d'une autre table.
tableétrangère Nom de latable étrangère contenant le ou les champs spécifiés par champétranger.
champétranger1, champétranger2 Nom du ou des champs de la table_étrangère spécifiée(s) par réf1, réf2. Vous pouvez omettre cette clause si le champ faisant l'objet de la référence constitue la clé primaire de table_étrangère.
Notes
Utilisez la syntaxe d'une contrainte monochamp dans la clause de définition de champ d'une instruction ALTER TABLE ou CREATE TABLE immédiatement après la spécification du type de données du champ.
Utilisez la syntaxe d'une contrainte multichamp chaque fois que vous utilisez lemot reservé CONSTRAINT hors d'une clause de définition de champ dans une instruction ALTER TABLE ou CREATE TABLE.
CONSTRAINT permet de définir un des types de contraintes suivants pour un champ :
Vous pouvez utiliser le mot réservé UNIQUE pour définir un champ comme clé unique. Cela signifie que deux enregistrements de la table ne peuvent pas avoir la même valeur dans ce champ. Vous pouvez contraindre n'importe quel champ ou liste de champs à être unique. Si un index multichamp est défini comme clé unique, les valeurs combinées de tous les champs de l'index doivent être uniques, même si plusieurs enregistrements ont la même valeur dans un seul des champs.
Vous pouvez utiliser les mots réservésPRIMARY KEY pour définir un champ ou une plage de champs sur une table comme clé primaire. Toutes les valeurs de la clé primaire doivent être uniques et non Null et vous ne pouvez définir qu'une seule clé primaire par table.
--------------------------------------------------------------------------------
Remarque Ne définissez pas une contrainte PRIMARY KEY sur une table disposant déjà d'une clé primaire; cette opération provoque une erreur.
Partager