2010-09-02 4 views
1

Ma question concerne un historique de base de données ou un tableau de transactions qui est actuellement mis à jour par la procédure mysql. La procédure est appelée par le déclencheur mysql chaque fois que nous conservons l'historique d'une table appropriée pendant les actions d'insertion, de mise à jour ou de suppression. Dans la mesure où nous avons beaucoup de tableaux pour chacun d'entre eux, nous devons créer un déclencheur séparé, par exemple. pour la "table des comptes", nous devons créer les déclencheurs "accounts_insert, accounts_update et accounts_delete". Le problème est que chaque fois que nous modifions la "table des comptes", nous devons également modifier les déclencheurs appropriés.Historique de MySQL ou table de journal de transaction mise à jour par des triggers

Y a-t-il un moyen d'éviter ce travail manuel? Serait-il préférable de l'implémenter dans la couche application/code?

Répondre

1

Il n'y a pas de déclencheurs «globaux» si c'est ce à quoi vous pensez.

La journalisation côté application est une solution possible. Vous voudrez le faire dans les transactions autant que possible.

D'autres approches possibles:

  • créer un script qui mettra à jour vos déclencheurs pour vous. Peut être assez facile, si vos déclencheurs sont généralement similaires les uns aux autres. L'utilisation de la base de données information_schema peut être utile ici.
  • Parse journal de requête générale (attention, ce qui permet ce journal peut avoir un grand impact négatif sur les performances du serveur)
+0

apprécier pour la réponse. Je pensais à "Autres approches possibles" # 1 – VVP

Questions connexes