Database Reference
In-Depth Information
Contrainte d'exclusivité ( suite )
Jeu d'essai ( suite )
OR
(projet IS NULL AND nbhmois IS NULL
AND prime IS NOT NULL
AND syndicat IS NULL
AND nbheuressupp IS NULL)
OR
(projet IS NULL AND nbhmois IS NULL
AND prime IS NULL
AND syndicat IS NOT NULL
AND nbheuressupp IS NOT NULL)
OR
(projet IS NULL AND nbhmois IS NULL
AND prime IS NULL
AND syndicat IS NULL
AND nbheuressupp IS NULL));
(101,'C. Date',450,NULL,45,'SQL SPOT',NULL,NULL);
1 row created.
-- administratif
I SERT INTO personnel VALUES
(102,'E. Codd',480,NULL,NULL,NULL,'C.F.D.T.',17);
1 row created.
-- aucune qualiication
INSERT INTO personnel VALUES
103,'C. Bravo',457,NULL,NULL,NULL,NULL,NULL);
1 row created.
-- commercial et administratif
INSERT INTO personnel VALUES
(104,'M. Denizot',457, 1500 ,NULL,NULL,
'C.F.D.T.',17 );
*
ERROR at line 1:
ORA-02290: check constraint (SOUTOU.CK_
EXCLUSIVITE) violated
La deuxième règle de gestion s'implémente dans cette même contrainte en permettant que
toutes les colonnes spéciiques soient nulles simultanément.
Contrainte de partition
La contrainte de partition s'implémente en interdisant que toutes les colonnes spéciiques
soient nulles simultanément. Il sufit d'enlever la dernière partie de la condition composée. Le
tableau suivant décrit l'écriture de cette contrainte avec deux insertions invalides : la première
du fait d'un personnel non qualiié, la seconde à cause d'une double qualiication.
Tableau 3-13 : Contrainte de partition pour l'héritage push-up
Contrainte de partition
Jeu d'essai
-- invalide : aucune qualiication
INSERT INTO personnel VALUES
(103,'C. Bravo',457,NULL,NULL,NULL,NULL,
NULL);
*
ERROR at line 1:
ALTER TABLE personnel
ADD CONSTRAINT ck_partition
CHECK
((projet IS NOT NULL AND nbhmois IS NOT NULL
AND prime IS NULL
 
Search WWH ::




Custom Search