|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 15 ![]() |
Bonjour, j'ai mis en place des Trigger sur mes tables pour connaitre la derniere date ou cette table a été modifié,(insert,update, delete) mais il arrive quelque fois ou le trigger ne s'active pas mais je ne sais pas pourquoi. Il n'y a rien dans le log.
Voila ma fonction trigger : Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Il n'y a rien dans le code de la fonction qui expliquerait le problème.
A quoi se voit le problème d'ailleurs? Le date_update n'est pas du tout à la bonne heure? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 15 ![]() |
Oui la date_update n'est pas du tout à l'heure.
exemple: je fais une modification dans ma table (via hibernate), la modification est bien effectuée dans la table mais date_update n'a pas changé. Ce problème vient aléatoirement, généralement un coup sur deux. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Hibernate est une grosse merde qui génère plus de problème et constitue une boîte opaque dans laquelle il est difficile de savoir ce que cette horreur fait !
Pour vous donner une idée de pourquoi il faut éviter Hibernate et pas mal d'outils de ce genre, lisez cet article : http://img1.lemondeinformatique.fr/f...s-epaisses.pdf A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
01
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 15 ![]() |
Oui je suis d'accord, mais la le trigger est au niveau de postgres et apres l'insert/update, donc peu importe qui fait l'insertion/modif et comment, cela ne devrait pas avoir d'importance non ?
|
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 648 ![]() |
Bonjour,
n'auriez-vous pas des problèmes de lock ? Si vous transformez ce trigger en trigger before update / insert et que dedans vous faites un set de la NEW.ma_date, avez-vous encore le même problème ? Code :
Code :
|
||||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 15 ![]() |
Bonjour punkoff,
je n'ai pas compris ce que vous me demandez de faire. Vous voulez que je mette ce trigger before sur la table dont la date est mise à jour ? ou que je change mon trigger actuel en le mettant en before au lieu d'after ? j'ai essayé ca, mais il me dit que new n'existe pas dans la table update_table. Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 648 ![]() |
Bonjour,
Oui, de remplacer votre trigger actuel par l'exemple que je vous ai donné pour voir si vos problèmes persiste avec cette méthode. Dans votre cas vous updatez une 2eme fois votre ligne juste après le commit (je suppose ?) Dans le cas d'un trigger before vous allez remplacer la valeur de votre colonne date juste avant l'update. Dans les 2 cas par contre je penses que votre ORM sera désynchronisé avec la base de donnée .... et si vos problèmes viennent de là... du coup il faudrait forcer le vidage du ...cache ? (je ne sais plus le therme exacte) afin qu'il récupère les bonnes infos de la base pour l'objet mappé. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 15 ![]() |
En remplaçant par before ce n'est pas possible dans le fonctionnement actuel de l'application, plus rien n'est synchro.
Par contre par l'opération du saint esprit je n'arrive plus à reproduire le bug du trigger qui ne se lance pas. Alors je ne sais pas comment j'ai corrigé le problème(enfin qu'il n'apparait plus en tout cas), car j'ai modifié pas mal de choses entre temps sans revérifier ce bug. Si vous avez une idée d'ou ca pouvait venir je veux bien savoir, des fois que ca revienne. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com