MYSQL Procédures Stockées Si l'énoncé de Problème
Je travaille avec Mysql 5.1.28-rc sur freebsd. J'ai juste décidé d'utiliser des procédures stockées dans MYSQL et créé une procédure de test comme ci-dessous:
DELIMITER $$
DROP PROCEDURE IF EXISTS test $$
CREATE PROCEDURE test( IN test VARCHAR(22) )
BEGIN
DECLARE count INT(11);
SET count = (SELECT COUNT(*) FROM Test WHERE test_column = test );
SELECT count;
IF count = 0 THEN
SET count = 1;
ELSE
SET count = 2;
ENDIF;
END $$
DELIMITER;
Cette procédure fonctionne bien sans instruction SI , mais avec l'instruction si elle donne,
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
END'
Comment puis-je résoudre ce problème? Où est le problème?
OriginalL'auteur systemsfault | 2009-07-17
Vous devez vous connecter pour publier un commentaire.
ENDIF
nécessite un espace dans MySQL n'est-ce pas? c'est à direEND IF
Il est quasiment impossible de repérer les fautes de frappe dans votre propre code, ne vous inquiétez pas. Nous allons l'entendre pour la programmation en binôme ou, si vous ne pouvez pas le faire, DONC... 😀
OriginalL'auteur David M
Juste besoin d'espace dans
end if
dans la procédure stockéeLa Justification? mona juste copié la réponse ci-dessus
OriginalL'auteur mona
Ne devraient pas utiliser des variables comme le nombre ou quelque chose. Merci donc de trouver la solution pour ce-
OriginalL'auteur user2606556