0

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

请尽快给我一个解决方案

4

1 回答 1

0

除了您需要使用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演示

于 2013-08-17T02:16:17.583 回答