Mysql版本14.14 Distrib 5.1.41
我有一个存储过程,我正在尝试编译,但错误不断出现。我的存储过程准备一个insert语句,执行它,解除分配准备好的语句,然后尝试返回最后一个插入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
由于错误说我无法从程序返回。但是我可以从一个程序出来?我很难找到一个查询的示例,我将从这个例子中做到这一点。
答案 0 :(得分:2)
要么声明OUT
参数,要么将您的程序设为FUNCTION
。
你会在这里找到足够的文件:
http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html