繁体   English   中英

mysql中存储过程中的EXISTS和输出参数

[英]EXISTS and output parameter in stored procedure in mysql

这是我的存储过程,如果在文档详细信息中找到任何数据,则返回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

请尽快为我提供解决方案

除了需要使用SET将值分配给局部变量或参数这一事实外,还有其他事情值得一提

  1. END IF之后必须用分号
  2. 由于EXSITS()返回BOOLEAN您可以直接将其分配给OUT参数

话虽这么说,您的存储过程可能看起来像

CREATE PROCEDURE abcde(OUT result BOOLEAN)
  SET result = 
  (
    EXISTS(SELECT * 
             FROM document_details)
  );

注意:现在这只是一个陈述。 因此,您甚至不需要更改DELIMITER并使用BEGIN ... END块。

这是SQLFiddle演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM