Trigger sur un update

Trigger sur un update - SQL/NoSQL - Programmation

Marsh Posté le 04-08-2011 à 14:54:46    

Bonjour à tous,
 
Je cherche à faire une procédure stockée qui permettrait de [B]récupérer les ID de mes tables 'ficheRef' et 'usager', et d'ajouter la date du jour et l'heure au champ 'dateModification' de ma table 'historique'[/B] dès qu'un update est effectué dans la table 'ficheRef'.
 
Voici un schéma de la base (enfin la partie qui nous concerne)
http://i68.photobucket.com/albums/i7/Anatal/exemple_mpd.jpg
 
J'ai essayé d'écrire mon trigger comme suit, mais sans succès:
 

Code :
  1. DROP TRIGGER IF EXISTS intranet.lienHisto_ficheRef;
  2. DELIMITER //
  3. CREATE TRIGGER intranet.lienHisto_ficheRef
  4. BEFORE UPDATE ON intranet.ficheRef
  5. FOR EACH ROW BEGIN
  6. INSERT INTO historique (idUsager,IdFicheRef,dateModification) VALUES (OLD.idUsager, OLD.IdFicheRef, CURRENT_TIMESTAMP);
  7. END
  8. //
  9. DELIMITER ;


 
MySQL tourne longtemps quand je lui donne ce code jusqu'à ce qu'il me donne le message d'erreur :

Citation :

"[I]Fatal error: Maximum execution time of 300 seconds exceeded in C:\wamp\apps\phpmyadmin3.2.0.1\libraries\import\sql.php on line 131[/I]".


 
Voyez vous ce qui pose problème dans mon code? Qu'est-ce que j'ai loupé?
 
Cordialement.


---------------
Quand vous demandez sur un forum comment changer un pneu de voiture peu de gens vous répondent. Et ceux qui le font vous expliquent généralement comment rouler sur 3 roues.
Reply

Marsh Posté le 04-08-2011 à 14:54:46   

Reply

Marsh Posté le 04-08-2011 à 15:05:43    

tu fais un updtae de beaucoup de lignes d'un coup ?


---------------

Reply

Marsh Posté le 04-08-2011 à 15:12:20    

"Beaucoup de lignes ?"
 
Non normalement un utilisateur change quelques valeurs dans un champ ou deux. Un update ne concernera jamais plus d'une fiche à la fois. Pas d'update en série genre "changer une valeur sur 500 fiches à la fois"!
 
Pourquoi cette question?


---------------
Quand vous demandez sur un forum comment changer un pneu de voiture peu de gens vous répondent. Et ceux qui le font vous expliquent généralement comment rouler sur 3 roues.
Reply

Marsh Posté le 22-08-2011 à 17:14:39    

Il y a peut-être plus de monde présent sur le fofo? Le 15 août est passé  :D


---------------
Quand vous demandez sur un forum comment changer un pneu de voiture peu de gens vous répondent. Et ceux qui le font vous expliquent généralement comment rouler sur 3 roues.
Reply

Marsh Posté le 24-08-2011 à 13:58:57    

Bigre! En 20 jours personne n'a de réponse à me proposer. Pourtant plus de 150 personnes ont lu ce message... mon problème est peut-être plus compliqué que je ne l'avait cru au début?!?
 
Je vais tâcher de trouver une autre solution que les triggers.


---------------
Quand vous demandez sur un forum comment changer un pneu de voiture peu de gens vous répondent. Et ceux qui le font vous expliquent généralement comment rouler sur 3 roues.
Reply

Marsh Posté le 25-08-2011 à 11:56:59    

Euh soit je sais pas lire ton schema soit la table ficheRef ne contient pas de champ idUsager. Je ne vois donc pas trop comment tu esperes récupérer un OLD.idUser.
Ta liaison ficheRef<=>usager ne peut se faire que via historique?
 
Tu noteras également que c'est pas MySQL qui te donne ce message d'erreur mais PHP, on supposera donc que la ligne 151 correspond bien à l'update de ficheRef.
 


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed