开发者社区> 问答> 正文

mysql触发器中使用if语句报错 ?报错

在navicat中使用正常的更新完全可以处理,但是只能处理一种情况。
当需要判断处理输入的文件种类时,报错1064在第三行,找了很多帖子都没有解决,求各位大大帮忙看看
错误的语句:

update project p 
if new.category='项目需求' then
set p.projectrequireid = new.id
where new.projectid = p.id
elseif new.category='项目意向书' then
set p.projectloiid = new.id
where new.projectid = p.id
end if;

正确的单行处理

update project p
set p.projectrequireid = new.id
where new. category='项目需求' and new.projectid = p.id

展开
收起
爱吃鱼的程序员 2020-06-23 01:17:42 766 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    UPDATEprojectp,newn
    SETp.projectrequireid=CASEWHENn.category='项目需求'THENn.idELSEp.projectrequireidEND,
    p.projectloiid=CASEWHENn.category='项目意向书'THENn.idELSEp.projectloiidEND
    WHEREn.projectid=p.id

    这个应该能达到你要的效果

    2020-06-23 01:18:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像