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 29/04/2008, 17h06   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 56
Points : 13
Points : 13
Par défaut Trigger appelle procedure

Bonjour,

J'ai un comme un souci.
J'ai vu sur http://dev.mysql.com/doc/refman/5.0/...-triggers.html qu'un type arrivait à appeler une procedure stockée depuis un trigger et ça à l'air miraculeusement simple...

Evidemment avec moi, impossible.
J'ai testé ma procedure, elle marche tip top.

Et mon trigger est ainsi créé:
Code :
1
2
CREATE TRIGGER insert_bidule AFTER INSERT ON ma_base.bidule FOR EACH ROW 
CALL ma_base.checkMonFlow(185,'yeah','dude');
Impossible, le trigger n'est jamais appelé. En tous cas, ma fonction ne fait rien et quand je la teste pas de probleme.
J'ai refais le trigger tout simple et ca marche.
Donc cest bien l'appel à ma procedure qui ne marche pas.

J ai mysql 5.0.41-Debian_1-log

Merci à celui ou celle qui me sauvera la peau
drzoidberg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 06h08   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
que contient ta procédure ?
comment testes-tu ton trigger ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 17h03   #3
Invité régulier
 
Inscription : août 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 18
Points : 8
Points : 8
Salut :
J'ai le même problème, j'ai une procédure qui a comme paramètre l'ID d'un utilisateur, le résultat fournit est le login de ce user. Voila le Code

Code :
1
2
3
4
5
6
7
8
9
10
 
DELIMITER $$
 
CREATE DEFINER=`root`@`localhost` PROCEDURE `username`(IN parametre DECIMAL(18,0))
BEGIN
 
SELECT username FROM userbase WHERE ID=parametre;
END $$
 
DELIMITER ;

Aprés j'ai créer un trigger
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
DELIMITER $$
 
CREATE TRIGGER test_imput AFTER INSERT ON Imputation
FOR EACH ROW
 
BEGIN
DECLARE login varchar(100);
 
login := username(New.user);
INSERT INTO test_imputation
  VALUES (new.ID, new.user, new.Date_imputation, login);
 
 
END $$
 
DELIMITER ;
L'appel de la procédure n'a pas marchais quelqu'un a une idée???
Nessma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 10h28   #4
Membre à l'essai
 
Femme Sandrine
Développeur informatique
Inscription : août 2005
Messages : 29
Détails du profil
Informations personnelles :
Nom : Femme Sandrine
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2005
Messages : 29
Points : 23
Points : 23
L'affectation se fait avec la commande SET. On obtient :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DELIMITER $$

CREATE TRIGGER test_imput AFTER INSERT ON Imputation
FOR EACH ROW

BEGIN
DECLARE login varchar(100);

SET login = username(New.user);
INSERT INTO test_imputation
  VALUES (new.ID, new.user, new.Date_imputation, login);


END $$

DELIMITER ;
Je n'ai pas testé le résultat...

spg40
spg40 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 23h48.


 
 
 
 
Partenaires

Hébergement Web