mysql中存储过程中的EXISTS和输出参数
Posted
技术标签:
【中文标题】mysql中存储过程中的EXISTS和输出参数【英文标题】:EXISTS and output parameter in stored procedure in mysql 【发布时间】:2013-08-14 06:00:36 【问题描述】:这是我的存储过程,如果在文档详细信息中找到任何数据但它会生成错误,则返回 true
" #1064 - 您的 SQL 语法有错误;请查看与您的 mysql 服务器版本相对应的手册,以获取正确的语法,以便在第 5 行的 '@result = true end if end' 附近使用"
create procedure abcde(out result boolean)
begin
if exists(select * from document_details)
then @result = true;
end if
end
请尽快给我解决方案
【问题讨论】:
@result 是用户定义的变量,而不是输出参数。我建议你阅读参考手册中的Variables in Stored Programs。 那么请建议我如何检索值作为输出参数的代码 【参考方案1】:除了需要使用SET
给局部变量或参数赋值之外,还有其他值得一提的地方
END IF
后面必须有分号
由于EXSITS()
返回BOOLEAN
,您可以直接将其分配给您的OUT
参数
也就是说你的存储过程可能看起来像
CREATE PROCEDURE abcde(OUT result BOOLEAN)
SET result =
(
EXISTS(SELECT *
FROM document_details)
);
注意:现在它只是一个声明。因此,您甚至不需要更改 DELIMITER
并使用 BEGIN ... END
块。
这里是SQLFiddle演示
【讨论】:
以上是关于mysql中存储过程中的EXISTS和输出参数的主要内容,如果未能解决你的问题,请参考以下文章