Définition d'une contrainte entre table

Fermé
lostinoracle - 1 déc. 2010 à 16:08
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 - 4 déc. 2010 à 12:21
Bonjour,

Je travaille actuellement sur un projet de base de donnée d'un centre de plongée (sous Oracle 11g2). Afin de gérer les réservations, j'ai créer une table "Booking" comme suivant :

CREATE TABLE Booking
(
License_number NUMBER(6) NOT NULL,
Divesite_Name VARCHAR(20) NOT NULL,
Dive_Date DATE NOT NULL,
Divemaster_Number NUMBER(3),

PRIMARY KEY(License_number, Divesite_Name, Dive_Date),
FOREIGN KEY(License_number) REFERENCES Diver(DLicense),
FOREIGN KEY (Divesite_Name) REFERENCES Divesite(DSName),
FOREIGN KEY (Divemaster_Number) REFERENCES Divemasters(DMNumber)
);

En utilisant la table Diver :

Diver(DLicense, DName, DLevel, DMedical_Clearance)

Je voudrais pouvoir imposer la contrainte suivante sur la table booking:

CONSTRAINT Authorize CHECK (Diver.DMedical_Clearance='Y')

Y-a-t'il un moyen de créer cette contrainte entre table? Le fait qu'elle soit liée par la foreign key "DLicense" ne devrait pas permettre à Oracle de remonter à l'information requise pour le test?

Merci pour vos réponses.

1 réponse

DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
4 déc. 2010 à 12:21
LostinOracle,

La condition d'une contrainte de vérification peut se référer à une colonne de la table, mais il ne peut pas faire référence aux colonnes des autres tables.



http://www.dba-ora.fr
0