Page 1 sur 1

DB2 - Ajout de colonnes Timestamp autonome

Posté : ven. 08 févr. 2019, 16:45:29
par N1kos
Bonjour,
Je souhaite créer 2 nouvelles colonnes dans une table existante de type timestamp.
La 1ère contient l'horodatage de la ligne au moment de l'insert.
La 2nde contient l'horodatage de la ligne au moment de l'update.

Code : Tout sélectionner

ALTER TABLE MATABLE
    ADD COLUMN H_INS TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL NOT HIDDEN
    ADD COLUMN H_UPD TIMESTAMP(6) FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP NOT NULL NOT HIDDEN;
Je souhaite initialisé les valeurs des 2 colonnes à '0001-01-01' mais impossible pour ma colonne H_UPD.

Si vous avez une solution ?

(sans sujet)

Posté : ven. 08 févr. 2019, 18:53:23
par nbonnet
Bonjour,

Le but est de faire un insert avec H_UPD = '0001-01-01' ?
Le système mettra l'horodatage en cours au moment de l'insert. Si l'on veut mettre une autre valeur, il faut indiquer la clause 'overriding system value' à l'insert ou à l'update.

Sinon, faire un trigger, mais pas très recommandé pour des questions de performance dans ce cas.

(sans sujet)

Posté : lun. 11 févr. 2019, 11:06:46
par N1kos
Bonjour,

En effet mon but était bien de forcer la valeur H_UPD = '0001-01-01' pour les lignes avant la mise en place des nouvelles colonnes.

Via la script ci-dessous, ça fonctionne parfaitement:

Code : Tout sélectionner

update MATABLE SYSTEM VALUE set H_UPD = '0001-01-01'  ;
Merci pour l'information, la clause "overriding system value" m'était totalement inconnue.