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 31901 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 31901 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.
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.
1 réponse
-
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é.