Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai une table audite que je souhaite gérer avec un trigger.
Pour les Insertions et les Suppression c'est déjà. Par contre
pour chaque Update je veux enregistrer en meme temps
la valeur modifier et son ancien valeur. Can you help me please ??
Voici ma fonction
CREATE OR REPLACE FUNCTION "log_mission" () RETURNS trigger
VOLATILE
AS $dbvis$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO audit VALUES(uuid_generate_v4(), OLD.account_id, current_timestamp, 'Mission', 'Suppresion', '', '', OLD.account_id);
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO audit VALUES(uuid_generate_v4(), NEW.account_id, current_timestamp, 'Mission', 'Modification', '', '', NEW.account_id);
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO audit VALUES(uuid_generate_v4(), NEW.account_id, current_timestamp, 'Mission', 'Création', '', '', NEW.account_id);
END IF;
RETURN NEW;
END;
$dbvis$ LANGUAGE plpgsql
Hors ligne
J'avoue que je ne vois pas ce qui vous pose problème. Vous utilisez OLD pour les anciennes valeurs, et NEW pour les nouvelles, comme vous le faites déjà pour le DELETE et l'INSERT.
Guillaume.
Hors ligne
Merci pour ta réponse. Oui je l'ai finalement avec NEW et OLD
IF (TG_OP = 'UPDATE') THEN
IF (NEW.valid_to != OLD.valid_to) THEN
INSERT INTO audit VALUES(uuid_generate_v4(), ...);
ELSIF (NEW.rate != OLD.rate) THEN
INSERT INTO audit VALUES(...);
ELSIF(NEW.workflow_state != OLD.workflow_state) THEN
INSERT INTO audit VALUES(...
END IF;
Hors ligne
Pages : 1