Bonjour,
je cherche à crée un contrainte sur une table (TINFO). En fait si une colonne (INFO_KEY) a une valeur particulière (BASE), alors je dois vérifier que la valeur d'une autre colone (INFO_FIELD) se situe bien dans les valeurs d'une colonne(BASE_TYPE) d'une autre table(TBASE).
J ene sais pas is c'est très clair, alors voici un exemple de ce que je comptais faire.
Le problème est que le select dans le if est interdit. Et j'ai beau me creuser les ménages, je ne vois pas d'autre solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE OR REPLACE TRIGGER TR_TINFO_CONSTRAINT BEFORE INSERT OR UPDATE ON TINFO FOR EACH ROW DECLARE LE$Fin exception; BEGIN IF :NEW.INFO_KEY = 'BASE' THEN IF :NEW.INFO_FIELD NOT IN (SELECT DISTINCT BASE_TYPE FROM TBASE) THEN RAISE LE$Fin; END IF; END IF; END; /
Quelqu'un aurait-il la gentillesse de m'aider ?
Partager