Процедура выполняется только до SELECT'a

ChazAshley
Дата: 14.01.2013 12:56:19
Приветики. Есть одна процедура
CREATE DEFINER =  `root`@`localhost` PROCEDURE  `Add_Item_to_Inventory` ( IN  `c_id` INT( 11 ) , IN  `i_id` INT( 11 ) ) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER 
BEGIN
SELECT @u_id := user_id, @num := max_item, @curr := curr_item
FROM chars
WHERE char_id = c_id;
 
IF @curr < @num THEN 
INSERT INTO inventory( char_id, user_id, item_id ) 
VALUES (
c_id, u_id, i_id
);
 
UPDATE chars SET curr_item = curr_item +1 WHERE char_id = c_id;
 
END IF ;
 
END

По идее, она принимает два значения, это id персонажа и id предмета, потом мы получаем максимальное возможное количество предметов которое может быть у персонажа и текущее количество предметов. Если текущее значение меньше максимального, то в таблицу inventory мы добавляем запись в формате ID персонажа, ID пользователя, ID предмета, и увеличиваем на 1 текущее число предметов.
Но при попытке выполнить данную процедуру, в качестве результата вылазиит результат работы SELECT'a и все, в табличку inventory ничего не добавляется, и вообще, ничего больше не делается.
Скажите, плиз, в чем может быть проблема??
tanglir
Дата: 14.01.2013 13:04:32
ChazAshley, задекларировать необходимые переменные и воспользоваться select into variable что мешает? Оно и читаемее будет...
ChazAshley
Дата: 14.01.2013 13:23:05
tanglir
ChazAshley, задекларировать необходимые переменные и воспользоваться select into variable что мешает? Оно и читаемее будет...

спасибо чювак! ты самый умный и крутой mysql программист на планете1!! =)