Bonjour,
est il possible d'avoir un champs (date ou booleen) mise à jour automatiquement par db2 lors de l'update d'une ligne ( sur n'importe quel autre champ) ?
merci
Bonjour,
est il possible d'avoir un champs (date ou booleen) mise à jour automatiquement par db2 lors de l'update d'une ligne ( sur n'importe quel autre champ) ?
merci
Il te faut utiliser un objet SEQUENCE.
Quelle plate-forme ?
Quelle version ?
Description de ta table...
On peut faire ceci également avec un trigger sur la table concernée.
En phase avec Mercure.
Si tu souhaites initialiser ta date avec un trigger comme ci-dessus, gaffe à ne pas définir cette colonne en NOT NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 CREATE TRIGGER XXX.TRIG01 AFTER INSERT ON XXX.NOMTAB REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL UPDATE NOMTAB SET COLDATE = CURRENT DATE WHERE IDENT = NEW.IDENT ; CREATE TRIGGER XXX.TRIG02 AFTER UPDATE OF COL1, COL2, ... ON XXX.NOMTAB REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW MODE DB2SQL UPDATE NOMTAB SET COLDATE = CURRENT DATE WHERE IDENT = NEW.IDENT ;
Quant au trigger "after update", gaffe de bien mettre le paramètre OF NOMCOL et de ne surtout pas préciser la colonne DATE dans ce paramètre OF, sinon tu boucleras indéfiniment...
OK pour le trigger qui en plus me permet d'affiner le processus en selectionnant
les colonnes updatées qui devront lancer le rafraichissement du champ..
cependant en terme de conso ( parce que je suis ss zOS) , sachant que j ai des TPs mais aussi des traitements BATCHs qui updatent mes tables massivement, est ce raisonnable ?
merci pour vos réponses
Chaque INSERT et chaque UPDATE te coutera le double puisque tu feras une double maj. Ce n'est évidemment pas le top, mais ce n'est pas non plus ingérable. Perso, dans notre SI, nous avons quelques triggers qui doublent les majs (ex : maj d'une colonne d'une table qui entraine la maj de la même colonne dans une autre table) et cela ne pose aucun souci, y compris pour des batchs de masse.
En résumé, c'est une solution qui rend service mais qui se doit d'être utilisée avec parcimonie !
oui et je suppose qu'en terme de temps de traitements vu que l on déjà sur l'enregistrement qu on va modifier ca doit être quasi transparent....ok..je vais étudier cette option...
merci les gars (et les girls) pour vos réponses....
Partager