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 30/11/2007, 09h32   #1
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Par défaut mauvaise syntaxe de mon déclencheur (trigger)

Bonjour,

Après plusieurs recherches instructives (mais laborieuses, le sujet étant flou), j'ai pu créer des déclencheurs avec MySQL 5. Cependant, jusqu'ici ma programmation en sql se résumait aux appels classiques fait par PHP. Donc je ne maîtrise pas la syntaxe.
Voici mon code, et je ne trouve pas...
Code :
1
2
3
4
5
6
7
CREATE TRIGGER verif_existence BEFORE INSERT ON administrateur FOR EACH ROW
BEGIN
IF EXISTS(SELECT nom_admin FROM administrateur WHERE nom_admin=new.nom_admin)
    THEN UPDATE administrateur SET old.nom_admin=new.nom_admin WHERE old.nom_admin=new.nom_admin
    ELSE nom_admin = new.nom_admin
END IF
END;
L'idée est de créer un déclencheur qui vérifie qu'une entrée n'existe pas déjà dans une table, si elle existe elle update, sinon elle insert...

Merci d'avance.
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 09h56   #2
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Par défaut problème résolu !

Bon en testant et re-testant différentes possibilités il s'est avéré qu'il y avait plusieurs erreurs. L'une de requête et l'autre de délimiteur...
Je vous livre le code exact :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
delimiter //
    CREATE TRIGGER verif_existence BEFORE INSERT  ON administrateur
FOR EACH
ROW 
BEGIN 
IF  EXISTS (
SELECT nom_admin
FROM administrateur
WHERE nom_admin = new.nom_admin
)
THEN  UPDATE administrateur SET nom_admin = new.nom_admin WHERE nom_admin = new.nom_admin;
 
 ELSE  INSERT  INTO administrateur( nom_admin ) 
VALUES (new.nom_admin
);
 
 END  IF ;
 
 END//
delimiter;
A une prochaine...
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 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 02h03.


 
 
 
 
Partenaires

Hébergement Web