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   -
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

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