Pracuję z Mysql 5.1.28-rc na freebsd. Właśnie postanowił użyć procedur przechowywanych w MySQL i stworzył procedurę testową, jak poniżej:Procedury przechowywane w MYSQL, jeśli instrukcja Problem
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;
Ta procedura działa dobrze bez instrukcji IF w nim, ale z if daje, 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'
Jak mogę rozwiązać ten problem? Gdzie jest problem?
świętej krowy, jak mogłem przegapić :) – systemsfault
To prawie niemożliwe do wykrycia literówki w swoim własnym kodzie, nie martw się. Posłuchajmy go do programowania par lub, jeśli nie możesz tego zrobić, SO ...: D –