Database Reference
In-Depth Information
Tableau 3-9 : Déclencheur pour l'héritage par exclusivité
Déclencheur Oracle
Jeu d'essai
CREATE TRIGGER tri_manager
BEFORE INSERT OR UPDATE OF idpers ON manager
FOR EACH ROW
DECLARE
numero INTEGER;
BEGIN
SELECT idpers INTO numero
FROM commercial WHERE idpers =
:NEW.idpers;
RAISE_APPLICATION_ERROR(-20001,'Le '
||numero||' est commercial...');
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
SELECT idpers INTO numero
FROM administratif WHERE idpers
= :NEW.idpers;
RAISE_APPLICATION_ERROR(-20002,'Le '
||numero||' est administratif...');
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- la contrainte est vériiée, mise à
jour autorisée
NULL;
END;
END;
SQL> INSERT INTO PERSONNEL VALUES
( 100 ,'F. Brouard',456);
1 row created.
SQL> INSERT INTO COMMERCIAL VALUES
( 100 ,14506.40);
1 row created.
SQL> INSERT INTO MANAGER VALUES
( 100 ,52,'SQL Spot Design');
*
ERROR at line 1:
ORA-20001: Le 100 est commercial...
ORA-06512: at "SOUTOU.TRI_MANAGER", line 6
ORA-04088: error during execution of
trigger 'SOUTOU.TRI_MANAGER'
La clause RAISE_APPLICATION_ERROR permet d'invalider la transaction en cours et de faire
passer un message applicatif.
La clause NO_DATA_FOUND permet de ne pas interrompre le bloc de traitement si une requête
ne retourne aucun enregistrement.
Les deux autres déclencheurs devront être programmés par analogie : celui portant sur la table
des commerciaux interrogeant les tables des managers et administratifs et celui de la table des
administratifs interrogeant les tables des managers et commerciaux.
Si. vous. ne. souhaitez. pas. travailler. avec. des. déclencheurs,. vous. devrez. coder. ces. règles.
métier.dans.vos.procédures.cataloguées.
La deuxième règle de gestion se programme naturellement du fait de l'existence de la clé
étrangère dans chaque table spéciique ( commercial , manager et administratif ) qui
référence la même table générique ( personnel ). En effet, il est possible que le personnel
numéro 100 ne soit référencé dans aucune table spéciique avec ce même numéro.
 
Search WWH ::




Custom Search