IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Identifier les deltas par trigger


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 30
    Par défaut Identifier les deltas par trigger
    Bonjour,

    Depuis quelques jours je planche sur le problème suivant:

    Soit une table t_user de la forme (id_user,login_user,name_user)

    Comme son nom l'indique, cette table contient des informations relatives à des users, pour la mettre à jour, un update "écrasant" le tuple en entier est utilisé. (il est codé dans une application fort compliquée que je ne souhaite pas avoir à modifier).

    A présent, je souhaite pouvoir faire un log de toute modification qui serait faite sur les tuples de cette table, j'ai donc immédiatement pensé aux triggers pour parvenir au résultat que je souhaiterais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    avant maj: tuple=(12,"toto","tutu")
    après maj: tuple=(12,"toto","titi")
    resultat du type: "tuple id=12 -- name_user: toto --> titi"
     
     
    avant maj: tuple=(12,"toto","tutu")
    après maj: tuple=(12,"tata","titi")
    resultat du type: "tuple id=12 -- login_user: toto --> tata, name_user: toto --> titi "
    Évidemment, je souhaiterais récupérer ce résultat dans une table de manière à pouvoir l'exploiter simplement.
    L'idéal serait de ne pas devoir gérer les colonnes une par une en "dur" dans le trigger (certaines de mes tables en ayant beaucoup).

    Je suis preneur de toute idée, solution...

    d'avance merci,

    cdt,

    jfv

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Ce que tu cherches à faire, c'est de l'historisation de l'évolution des données. Voici le lien vers un article très intéressant qui traite du sujet : http://blog.developpez.com/sqlpro/p8...nees/#more8453.

    Attention, l'article présente une solution dans SQL Server, qui offre bien plus de possibilités dans les triggers que ne le fait MySQL. A voir si c'est adaptable sous MySQL, avec ses limitations (sous PostgreSQL, aucun souci, puisque je me suis basé sur cet article pour faire la même chose).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/09/2013, 15h51
  2. Réponses: 2
    Dernier message: 25/07/2013, 10h38
  3. identifier les pixels par les couleurs
    Par abirmohammadi dans le forum Images
    Réponses: 1
    Dernier message: 26/09/2012, 13h04
  4. Identifier les fichiers en cours d'écriture par un process ext
    Par sinmaniphel dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 24/01/2007, 09h22
  5. [BP]Borland Pascal : modifier les couleurs par défaut.
    Par Pipoland dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 12/10/2004, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo