Trouver les changements après UPDATE : SQL

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.

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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é.