Je travaille avec MySQL 5.1.28-RC sur FreeBSD. Je viens de décider d'utiliser des procédures stockées dans MySQL et j'ai créé une procédure de test comme ci-dessous:
p> Cette procédure fonctionne bien sans si la déclaration dedans, mais avec le Si déclaration il donne,
Comment puis-je résoudre ce problème? Où est le problème? P> p> Erreur 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à votre version MySQL Server pour la syntaxe de droite à utiliser près »;
Fin ' code> p>
3 Réponses :
endif code> nécessite un espace dans MySQL ne l'est-il pas? I.e.
fin si code> p>
Sainte vache, comment pourrais-je manquer ça :)
Il est presque impossible de repérer des fautes de frappe dans votre propre code, ne vous inquiétez pas. Écoutons-le pour la programmation par paire ou, si vous ne pouvez pas faire cela, alors ...: D
Il suffit de besoin d'espace dans fin si code> dans la procédure stockée p>
Pouvez-vous justifier votre réponse? Par exemple. avec un lien vers la documentation?
Justification? Mona vient de copier la réponse ci-dessus
ne doit pas utiliser de variables comme le nombre ou quelque chose. Alors, veuillez trouver la solution pour cela-
DELIMITER $$ DROP PROCEDURE IF EXISTS test $$ CREATE PROCEDURE test(IN test VARCHAR(22) ) BEGIN DECLARE var_count INT; SET var_count = (SELECT COUNT(*) FROM test WHERE test.textfield = test); IF var_count = 0 THEN SET var_count = 1; ELSE SET var_count = 2; END IF; SELECT var_count; END $$