首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql ::存储过程::navicat

MySql ::存储过程::navicat
EN

Stack Overflow用户
提问于 2013-01-03 09:03:44
回答 1查看 2.1K关注 0票数 0

我在MySql(navicat)中有以下存储过程,但是当我添加test时,我需要在更新操作之后测试RefrenceCount。在更新状态之后。语法错误

代码语言:javascript
复制
CREATE PROCEDURE `SP_IncDecReferenceCount`(pReferenceID int,pIncValue int)
BEGIN
update filesrefrences
set 
    filesrefrences.RefrenceCount= filesrefrences.RefrenceCount+pIncValue 
where 
        filesrefrences.ReferenceID= pReferenceID;
IF Not EXISTS(SELECT * from filesrefrences where filesrefrences.ReferenceID= pReferenceID and filesrefrences.RefrenceCount>0) then 
DELETE from filesrefrences WHERE filesrefrences.ReferenceID = pReferenceID;
end if 
END

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 11
EN

回答 1

Stack Overflow用户

发布于 2013-01-03 09:21:33

你能做到的

代码语言:javascript
复制
update filesrefrences
set 
    filesrefrences.RefrenceCount= filesrefrences.RefrenceCount+IF(pIncValue > 0,pIncValue,1)
where 
        filesrefrences.ReferenceID= pReferenceID;

代码语言:javascript
复制
update filesrefrences
    set 
        filesrefrences.RefrenceCount= filesrefrences.RefrenceCount+pIncValue
    where 
            (filesrefrences.ReferenceID= pReferenceID) AND (pIncValue > 0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14135730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档