weixin_44131577 2018-12-27 10:52 采纳率: 0%
浏览 2236

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
  • 写回答

1条回答 默认 最新

  • lhxinbobo 2018-12-27 03:33
    关注

    UPDATE project p, new n
    SET p.projectrequireid = CASE WHEN n.category='项目需求' THEN n.id ELSE p.projectrequireid END,
    p.projectloiid = CASE WHEN n.category='项目意向书' THEN n.id ELSE p.projectloiid END
    WHERE n.projectid = p.id

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

    评论

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程