Exemple de contraintes d'intégrité

CREATE TABLE Personne (
 N°SS CHAR(13) PRIMARY KEY,
 Nom VARCHAR(25) NOT NULL,
 Prenom VARCHAR(25) NOT NULL,
 Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65),
 Mariage CHAR(13) REFERENCES Personne(N°SS),
 Codepostal INTEGER(5),
 Pays VARCHAR(50),
 UNIQUE (Nom, Prenom),
 FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)
);
CREATE TABLE Adresse (
 CP INTEGER(5) NOT NULL,
 Pays VARCHAR(50) NOT NULL,
 Initiale CHAR(1) CHECK (Initiale = LEFT(Pays, 1)),
 PRIMARY KEY (CP, Pays)
);

Réécriture avec uniquement des contraintes de table

CREATE TABLE Personne (
 N°SS CHAR(13) ,
 Nom VARCHAR(25) NOT NULL,
 Prenom VARCHAR(25) NOT NULL,
 Age INTEGER(3) ,
 Mariage CHAR(13),
 Codepostal INTEGER(5),
 Pays VARCHAR(50),
 PRIMARY KEY (N°SS),
 UNIQUE (Nom, Prenom),
 CHECK (Age BETWEEN 18 AND 65),
 FOREIGN KEY (Mariage) REFERENCES Personne(N°SS),
 FOREIGN KEY (Codepostal, Pays) REFERENCES Adresse (CP, Pays)
);
CREATE TABLE Adresse (
 CP INTEGER(5) NOT NULL,
 Pays VARCHAR(50) NOT NULL,
 Initiale CHAR(1),
 PRIMARY KEY (CP, Pays),
 CHECK (Initiale = LEFT(Pays, 1))
);

Ce schéma est strictement le même que le précédent, simplement les contraintes ont toutes été réécrites comme des contraintes de table.

AccueilCours > Créer des tables > Exemple< PrécédentSuivant >