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 01/11/2011, 16h00   #1
Membre actif
 
Inscription : novembre 2005
Messages : 537
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 537
Points : 198
Points : 198
Par défaut trigger insert et update

Bonjour,

je souhaiterais faire un trigger qui mette à jour une valeur dans le même table, à la même row.
voici les règles :

insert avec le champs visibleAcquereur à 0 > visibleFinal = 0
insert avec le champs visibleAgenceà 1 > visibleFinal = 1
update avec le champs visibleAcquereur à 1 > visibleFinal = 1
update avec le champs visibleAgence à 0 > visibleFinal = 0


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
ALTER TRIGGER TrigVisibiliteFinale
ON dbo.VisibiliteBien
FOR UPDATE /* Fire this trigger when a row is INSERTed or UPDATEd */
AS
BEGIN
IF UPDATE(visibleAcquereur)
begin
UPDATE VisibiliteBien SET dbo.VisibiliteBien.visibleFinal = 1
FROM Updated
WHERE Updated.visibleAcquereur=1 AND Updated.visibleAgence=1
end
end
 
 
-- rollback en cas d'erreur
IF @@Error <> 0
ROLLBACK TRANSACTION
suis un peu perdue

merci

Nath
nath-0-0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 18h29   #2
Membre régulier
 
Homme Francis Lennert
Développeur informatique
Inscription : novembre 2011
Messages : 52
Détails du profil
Informations personnelles :
Nom : Homme Francis Lennert
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2011
Messages : 52
Points : 86
Points : 86
Hello

Si vous souhaitez modifier le record en cours sur la table en cours, vous ne pouvez pas passer par un Update mais directement par du code incluant les préfixes New. ou Old.

Exemple :

Code :
1
2
3
4
5
6
 
IF New.visibleAcquereur   > 0 then
   SET visibleFinal = 0 ;
End IF;
 
Etc....
Vous pouvez faire cee trigger avant ou après la mise jour du record suivant ce qu'il est nécessaire dans vos traitements.

Est ce assez clair ?
Grandal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web