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 02/04/2007, 15h35   #1
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Par défaut Trigger sous MySQL

Bonjour à tous ,

ayant appris que des triggers étaient disponibles sous MySQL depuis les versions 5.0, je m'y suis lancée mais j'ai un gros soucis. J'ai un certain nombre de trigger à faire ayant tous (ou à peu près) le même code mais je n'arrive pas à les insérer dans une base mySQL .

Voici un des exemples de mes triggers :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TRIGGER verifPresentPoste
BEFORE INSERT
ON candidature
FOR EACH ROW
DECLARE
 nbposte int;
 refus	exception;
BEGIN
  SELECT count(*) INTO nbposte
  FROM liste_fonctions
  WHERE MEM_idMembre = NEW.MEM_idMembre;
  IF nbposte>0 then
	raise refus;
  else
	DBMS_OUTPUT.PUT_LINE 'Présentation autorisée';
  end IF;
 
  EXCEPTION
  when refus then
    raise_application_error(9001,'Le membre a déjà une fonction => Présentation refusée');
END;
J'ai appris grâce au tutos que MySQL ne prenais pas en compte les exception comme apparement non plus les blocs de déclaration alors je voudrais savoir deux choses (si quelqu'un peut me répondre) :
- est-il possible de renvoyer des exceptions ou de ne pas déclencher la requête et si oui comment?
- peut-on déclarer des variables?

Merci d'avance de me répondre.
champijulie
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 18h10   #2
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Re,

J'ai modifié mon code en fonction des remarques données dans le tutoriel mais la requête pour ajouter mon trigger ne fonctionne toujours pas . Voici le nouveau code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TRIGGER verifPresentPoste
BEFORE INSERT
ON candidature
FOR EACH ROW
BEGIN
  SELECT count(*) AS nbposte
  FROM liste_fonctions
  WHERE MEM_idMembre = NEW.MEM_idMembre;
  IF nbposte>0 then
	SELECT * FROM refus;
  else
	DBMS_OUTPUT.PUT_LINE 'Présentation autorisée';
  end IF;
END;
et voici l'erreur renvoyée par MySQL :
Code :
1
2
3
1064 - Erreur de syntaxe près de 'SELECT count(*) AS nbposte
  FROM liste_fonctions
  WHERE MEM_' à la ligne 6

Quelqu'un pourrait-il m'aider?
Merci d'avance.

champijulie
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 10h57   #3
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Bonjour à tous,

malheureusement apparement personne ne peux m'aider et j'ai beau changer certaines choses, cela ne fonctionne pas.
Personne ici n'utilise de triggers sous MySQL?
Sont-ils trop primitifs pour pouvoir les utiliser correctement ?

Merci de me répondre
champijulie
champijulie 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 06h02.


 
 
 
 
Partenaires

Hébergement Web