bonjour ,
je débute à travailler sur les trigger , et je veux créer un qui me permet en cas d'insérer une valeur null dans un champ lui affecter une valeur que je spécifie
merci
Version imprimable
bonjour ,
je débute à travailler sur les trigger , et je veux créer un qui me permet en cas d'insérer une valeur null dans un champ lui affecter une valeur que je spécifie
merci
Ajoute un déclencheur When-Validate-Item sur ton objet champ et dans le corps du déclencheur, fais un truc comme :
:ccool:Code::champ := 'ta valeur';
.
je ne me suis pas bien expliquée . en fait j'ai crée un table t1(a1,b1)
je veux lorsque je fais un requête d'insertion si b1 est null alors lui affecter par exemple la valeur 10 .
il y'a plusieurs façon de faire ça:
dans les propriétés du champ dans forms, mettre la valeur si Null à la valeur choisie.
ou bien dans la création de la table, tu peut peux faire DEFAULTS 'Valeur choisie'.
je n'utilise les forms , en fait j'utilise sql*plus et je veux faire cette condition sur ma table.
donc ut utilise la 2ème solution que je t'ais donner, lors de la création de la table, dans le champ que tu veux, tu fais DEFAULT 'AAAA'.
ok .
mais je voudrais utiliser les trigger par exemple pour contrôler le nombre d'enregistrement insérés selon des critères par exemple
si j'ai une table T1(id,nom, sport) ,T2(sport,nbmax) je veux contrôler le fait qu'un joueur ne puisse effectuer plus que 3 sport et le contrôler que le nombre des joueurs dans un sport ne dépasse le nbmax .
tu peux utiliser les triggers ON INSERT OR DELETE sur la table que tu veux, et tu fais count(*) sur l'information que tu veux.
inspire toi de ça!
j'ai pensé à ça mais étant donné que je connais pas la syntaxe ou un exemple sur lequel je peux commencer
j'ai pensé à ça mais étant donné que je connais pas la syntaxe ou un exemple sur lequel je peux commencer donc je ne vois pas comment bien faire
je vais essayer dans tous les cas mais si jamais tu as un exemple ça sera le bienvenu merci
Tu as du chercher fort pour ne pas trouver d'exemple !!! :mouarf:
http://sheikyerbouti.developpez.com/...?page=Chap6#L6
j'ai vu le ce tuto mais j'ai essayé d'appliquer le avec le select(count(*)) from t1
mais je ne sais pas comment adapter ceci
pour ne pas te fatiguer, voila un exemple de trigger 8O.
Code:
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE TRIGGER NOM_TRG BEFORE INSERT OR UPDATE ON NOM_TAB REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW Begin DO SOMETHING End; /
:mrgreen:
donc dans la partie do something je peux exécuter n'importe quel type de requéte et mettre la valeur dans un variable si je ne me trompe pas
:ccool:
j'ai essayé cet exemple mais il m'affiche l'erreur PLS-00049: variable de lien erronée 'NEW.CODMOD' .
est ce que vous pouvez m'aider
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE OR REPLACE TRIGGER TRG_BDR_EMP BEFORE INSERT ON EXAMEN REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW Declare v_nb number ; Begin select count(*) INTO v_nb FROM examen where codmod = :NEW.Codmod ; dbms_output.put_line(v_nb) ; End ;
ça doit marcher, est ce que "Codmod' existe bien dans la table examen.
oui :(