MySQL-使用`if`的存储过程中的语法错误 [英] MySQL - Syntax Error in Stored Procedure using `if`

查看:562
本文介绍了MySQL-使用`if`的存储过程中的语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要知道以下存储过程中的错误是什么,因为乞求mySql我无法理解什么是错误

I need to know what is the error in the following stored procedure, as begging with mySql I can't understand what is the error

if not EXISTS( select filesrefrences.ReferenceID  from filesrefrences where filesrefrences.RefrenceKey= pRefrenceKey)
BEGIN
        Insert into filesrefrences                      
                            (                   
                                    filesrefrences.RefrenceKey,
                                    filesrefrences.RefrenceCount
                            )
                        VALUES
                         (                      
                                    pRefrenceKey,
                                    1
                         );
        select LAST_INSERT_ID();
        END
ELSE
BEGIN
        UPDATE filesrefrences
        set filesrefrences.RefrenceCount= filesrefrences.RefrenceCount+1
        WHERE filesrefrences.ReferenceID= ExistedReferenceID;
        SELECT ExistedReferenceID;
    END

在第4行出现错误

推荐答案

您尚未使用 THEN 关键字和 END IF .

You have not used THEN keyword and END IF.

尝试一下:

SET @ExistedRefID = NULL;
SELECT ReferenceID INTO @ExistedRefID 
FROM filesrefrences 
WHERE RefrenceKey= pRefrenceKey;

IF (@ExistedRefID IS NULL) THEN 
    INSERT INTO filesrefrences(RefrenceKey, RefrenceCount)
    VALUES(pRefrenceKey,1);
    SELECT LAST_INSERT_ID();
ELSE
    UPDATE filesrefrences
    SET RefrenceCount= RefrenceCount+1
    WHERE ReferenceID= @ExistedRefID;
    SELECT @ExistedRefID;
END IF;

这篇关于MySQL-使用`if`的存储过程中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆