0

Mysql 版本 14.14 发行版 5.1.41

我有一个要编译的存储过程,但不断出现错误。我的存储过程准备一个插入语句,执行它,释放准备好的语句,然后尝试返回最后一个插入 ID。这是一个伪提取:

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

正如错误所说,我无法从程序返回。但是我可以从程序中退出吗?我很难找到查询被 OUT'ed 的示例,我将如何从这个示例中做到这一点。

4

1 回答 1

2

要么声明一个OUT参数,要么让你的过程成为FUNCTION.

你会在这里找到足够的文档:

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

于 2011-06-15T15:52:28.023 回答