[sql]CREATE PROCEDURE `my_proc`(OUT t INTEGER(11)) NOT DETERMINISTIC SQL SECURITY INVOKER COMMENT '' BEGIN select id into 't' from `simpl` LIMIT 0,1; END;[/sql] что тут не правильно? почему то выдает ошибку #1064 - 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 '' at line 6
на самом деле написать нужно будет кое что другое, проблема в том что на начальном этапе даже это не работает. может быть это потому что у меня denver ?
mysql какой версии? p.s. посмотри в сторону продуктов EMS. Там есть замечательная для начала возможность - создаешь в конструкторе mysql - запрос, а затем преобразовываешь его в хранимую процедуру. и видишь код ее объявления
MySQL 5.0.45. а ты не мог бы по подробнее объяснить где что посмотреть. Просто не знаю что это за продукты EMS.
кстати если убрать строчку [sql]select id into 't' from `simpl` LIMIT 0,1;[/sql] то он создаёт процедуру. Как посмотреть список созданных функций, процедур?
Во первых где DELIMITER. Во вторых куда ты собрался результат отдавать? Если ты наивно думаешь , что OUT тебе поможет - зря. Если не в SQL скрипте в переменную. Мне почему то кажется , что забрать ты в клиента хочешь , ченить типа PHP. [sql]DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`my_proc`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `test`.`my_proc`() BEGIN select id from `simpl` LIMIT 1; END$$ DELIMITER ;[/sql] ХП , возвращает результат ТАКЖЕ как и обычный запрос. Только она может вернуть результаты нескольких запросов (имей multi_query). И юзать с ними надо MySQLi. И если у тебя в PHP скрипте будет больше одной ХП вызываться - делай зачистку. Иначе огребешся "out of sync" и будешь долго и больно ковыряться в поисках чего делать. http://habrahabr.ru/blog/webdev/37188.html