2011-10-22 3 views
0

Je travaille avec des procédures pour la première fois dans MySQL, mais pour une raison quelconque, je continue d'obtenir la valeur NULL. Ma procédure de test est simple, elle ne fait qu'ajouter.La procédure MySQL ne fonctionne pas

delimiter $$ 
create procedure adds(in r double, out a double) 
begin 
set a = r + r; 
end $$ 
delimiter ; 

CALL adds(5, @a); 

SELECT @a; 

Je ne sais pas si je fais cela correctement. Pour @a, il imprime juste NULL.

+0

Quelle version de MySQL utilisez-vous? Cela fonctionne bien dans 5.0. – imm

+0

J'utilise MySQL Workbench comme interface. Je sais que j'ai la version actuelle parce que j'ai récemment téléchargé MySQL. http://www.flickr.com/photos/[email protected]/6272956375/ –

+0

Correction du problème! N'a pas défini le schéma par défaut. –

Répondre

0

Une procédure est liée à une base de données.
Vous n'en avez pas spécifié un, et par conséquent il sera probablement attaché à une base de données différente de celle que vous attendez.

Lorsque vous changez de base de données, MySQL ne trouvera plus votre procédure stockée car elle ne regarde que dans la bonne base de données.

Rappelez-vous de toujours spécifier votre base de données lors de la déclaration d'une procédure stockée

create procedure mydatabase.adds(in r double, out a double) 
       ^^^^^^^^^^^ 
Questions connexes