Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 17h00   #1
Membre du Club
 
Inscription : avril 2002
Messages : 155
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 155
Points : 49
Points : 49
Par défaut Maintenir un champs par trigger

Hi,

Dans un shéma de tables Maitre Detail, je souhaiterais maintenir par trigger un champs date qui ferait ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DELIMITER //
 
CREATE TRIGGER Aft_Ins_Detail AFTER INSERT ON Detail
FOR EACH ROW
BEGIN
 
UPDATE Maitre
   SET Maitre.DateEntree=(SELECT Max(Detail.DateEntree) 
                            FROM Detail
                           WHERE Detail.MaitreID=Maitre.MaitreID)
 WHERE Maitre.MaitreID=NEW.MaitreID;
 
END //
 
DELIMITER ;
En clair, il s'agit donc de maintenir dans le champs Maitre.DateEntree la date la plus élevée trouvée dans Detail.DateEntree.
Malheureusement, le trigger référence nomément la table "Detail" dans le bloc BEGIN...END ce qui est interdit dans l'état actuel des triggers avec MySQL (5.1)

Je cherche donc une solution alternative pour maintenir ce champs DateEntree (par trigger ou autre).

Une idée ?

Merci

JJE
Jean-Jacques Engels est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h40   #2
Membre du Club
 
Inscription : avril 2002
Messages : 155
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 155
Points : 49
Points : 49
Oups !

Je retire ma question : à partir de la version MySQL 5.1, on peut référencer les tables par leur nom. (je suis toujours avec le manuel de la version 5.0 )



JJE
Jean-Jacques Engels est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h47.


 
 
 
 
Partenaires

Hébergement Web