Как выйти из хранимой процедуры, используя LAST_INSERT_ID () - PullRequest
0 голосов
/ 15 июня 2011

Mysql версия 14.14 Distrib 5.1.41

У меня есть хранимая процедура, которую я пытаюсь скомпилировать, но ошибка продолжает появляться.Моя хранимая процедура подготавливает оператор вставки, выполняет его, освобождает подготовленную оценку и затем пытается вернуть последний идентификатор вставки.Это псевдоэкстракт:

1 CREATE PROCEDURE `audit`( IN pExampleValue varchar(50))
2 
3 BEGIN
4 PREPARE stmt FROM 'INSERT INTO `Audit` (`Value`) VALUES (?)';
5 EXECUTE stmt USING @pExampleValue;
6 DEALLOCATE PREPARE stmt
7 
8 RETURN LAST_INSERT_ID() AS `AuditId`;
9 END$$

Из того, что я могу собрать, моя версия mysql может использовать подготовленные операторы в хранимых процедурах.Однако ошибка, которую я получаю, такова.

SQL Error (1313): RETURN is only allowed in a FUNCTION

Как говорит ошибка, я не могу вернуться из процедуры.Однако я могу выйти из процедуры?У меня возникают трудности с поиском примеров того, как выполняется запрос. Как именно я могу это сделать из этого примера.

1 Ответ

2 голосов
/ 15 июня 2011

Либо объявите параметр OUT, либо сделайте вашу процедуру FUNCTION.

Вы найдете достаточно документации здесь:

http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html

...