i ont une table dans l'oracle et je veux étudier les mises à jour sur les lignesOracle: Date de modification automatique sur la mise à jour
id number,
title varchar2(10),
modify_date date
j'ai créé un déclencheur pour alimenter le modify_date:
create or replace
TRIGGER schema.name_of_trigger
BEFORE UPDATE ON schema.name_of_table
FOR EACH ROW
BEGIN
:new.modify_date := sysdate;
END;
mais Quand je fais une grande mise à jour à partir d'une autre table, je voudrais que le modify_date soit mis à jour UNIQUEMENT pour les lignes avec une nouvelle valeur, pas toutes les lignes.
update mytable a set title = (select title from mytable2 b where b.id = a.id)
Est-ce possible? Je pensais que Oracle ne serait pas mettre à jour un champ avec la même valeur
Merci
et comment indiquer au déclencheur de ne pas mettre à jour la date si la valeur est différente? – Fredv
Vous comparez ': new.title' avec': old.title' dans le déclencheur. –
Le '! =' N'attrapera pas les valeurs nulles. –