Trouver les changements après UPDATE : SQL

le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
jee pee Messages postés 41548 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Tout comme mysql_insert_id() qui renvoi le dernier id inséré, je souhaiterais savoir si il existe une fonction qui retourne le ou les champ(s) qui ont été modifié (avec comble du bonheur l'ancienne valeur : j'en demande de trop ^^).

Exemple :
membre
- login : test
- password : test

UPDATE membre SET login=toto

La fonction me renverrai login=test.

Merci.
A voir également:

1 réponse

jee pee Messages postés 41548 Date d'inscription   Statut Modérateur Dernière intervention   9 723
 
Salut,

Mysql, je ne connais pas.

Mais par exemple dans Oracle cela n'existe pas. Si on souhaite tracer les mises à jour il faut alimenter des logs avec un trigger database. Du style :

CREATE OR REPLACE TRIGGER Log_membre 
AFTER UPDATE ON membre 
FOR EACH ROW 
WHEN (new.login != old.login) 
BEGIN 
    INSERT INTO membre_log (membre_id, Log_date, login, Action) 
       VALUES (:new.membre_id, SYSDATE, :old.login, 'MAJ LOGIN'); 
END; 


Et donc la table membre_log contient toutes les valeurs successives du login.

cdlt

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0