Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql语法分析器_Mysql_Sql_Stored Procedures - Fatal编程技术网

MySql语法分析器

MySql语法分析器,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,以下存储过程中存在错误语法错误: DROP PROCEDURE IF EXISTS `SP_IncDecReferenceCount`; CREATE DEFINER = `root`@`localhost` PROCEDURE `SP_IncDecReferenceCount`(pReferenceID int) BEGIN IF EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID

以下存储过程中存在错误语法错误:

DROP PROCEDURE IF EXISTS `SP_IncDecReferenceCount`;
CREATE DEFINER = `root`@`localhost` PROCEDURE `SP_IncDecReferenceCount`(pReferenceID int)
BEGIN
IF EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID and filesrefrences.RefrenceCount>1) then 
update filesrefrences
set 
    filesrefrences.RefrenceCount= filesrefrences.RefrenceCount-1
where 
        filesrefrences.ReferenceID= pReferenceID;
SELECT pReferenceID;
ELSE IF EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID) then 
DELETE from filesrefrences WHERE filesrefrences.ReferenceID = pReferenceID;
SELECT -77;
ELSE
SELECT -99;
end if ;
END;
错误是:
[Err]1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第8行中“”附近使用的正确语法您需要更改
分隔符。例如

DROP PROCEDURE IF EXISTS `SP_IncDecReferenceCount`;

DELIMITER &&

CREATE PROCEDURE `SP_IncDecReferenceCount`(pReferenceID int)
BEGIN
    IF EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID and filesrefrences.RefrenceCount>1) then 
        update filesrefrences
        set 
            filesrefrences.RefrenceCount= filesrefrences.RefrenceCount-1
        where 
                filesrefrences.ReferenceID= pReferenceID;
        SELECT pReferenceID;
    ELSE IF EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID) then 
        DELETE from filesrefrences WHERE filesrefrences.ReferenceID = pReferenceID;
        SELECT -77;
    ELSE
        SELECT -99;
    end if ;
END &&

DELIMITER ;
我删除了DEFINER=
root
@
localhost
,然后问题就解决了