美文网首页
MySQL触发器中IF条件判断问题

MySQL触发器中IF条件判断问题

作者: 荣耀神帮助人 | 来源:发表于2020-03-12 16:13 被阅读0次

前几天修改了一张回答表的触发器,结果保存草稿的时候报错:Data truncation: Truncated incorrect datetime value: '',经排查是触发器中一条判断的问题,我们来看原来的语句:
IF CONCAT(new.delete_flag,new.status)!=CONCAT(old.delete_flag,old.status) AND new.delete_flag=0 AND new.status=0 AND IFNULL(new.publish_time,'')!='' AND new.publish_time>DATE_ADD(NOW(),INTERVAL -30 DAY) THEN
    INSERT IGNORE INTO kid_follow_feed(receiver,operator,type,content_type,content_id,time) VALUES(new.user_id,new.user_id,3,3,new.id,new.publish_time);
    SET v_ret = redis_command_v2('LPUSH', 'mq:CalcFollowFeed', CONCAT(json_object('oper',new.user_id,'type',3,'contentType',3,'contentId',new.id)));
END IF;

原来的语句中先判断状态是否有变化,如果没有变化,再判断是否发布状态并且有发布时间,同时发布时间要在30天之内,结果这条语句就报错了,原因是保存草稿的时候发布时间是空字符串,修改成这样就没问题了:
IF new.delete_flag=0 AND new.status=0 AND IFNULL(new.publish_time,'')!='' THEN
    IF CONCAT(new.delete_flag,new.status)!=CONCAT(old.delete_flag,old.status) AND new.publish_time>DATE_ADD(NOW(),INTERVAL -30 DAY) THEN
      INSERT IGNORE INTO kid_follow_feed(receiver,operator,type,content_type,content_id,time) VALUES(new.user_id,new.user_id,3,3,new.id,new.publish_time);
      SET v_ret = redis_command_v2('LPUSH', 'mq:CalcFollowFeed', CONCAT(json_object('oper',new.user_id,'type',3,'contentType',3,'contentId',new.id)));
    END IF;
  END IF;

相关文章

  • MySQL触发器中IF条件判断问题

    前几天修改了一张回答表的触发器,结果保存草稿的时候报错:Data truncation: Truncated in...

  • 触发器

    MySQl中触发器 MySQl中触发器的语法如下: 例子:其中,new代表新插入的行记录

  • PHP操作MYSQL触发器讲解

    一,触发器 1.创建触发器 在MySQL中,创建触发器语法如下: 代码如下: CREATE TRIGGER tri...

  • MySQL之触发器

    本文主要介绍MySQL中触发器的相关知识与应用,为什么使用触发器,以及如何使用触发器。 I、触发器简介 如果我们想...

  • MySql中关键字 case when then else en

    在mysql数据库中,有时候我们会使用到条件语句的判断操作,类似if else。那么mysql中怎么处理这种需求的...

  • dbForge Studio for MySQL 触发器调试

    使用工具:dbForge Studio for MySQL 1,创建触发器 2,调试触发器 要调试MySQL触发...

  • mysql函数汇总之条件判断函数

    条件判断函数也被称为控制流程函数,根据满足的不同条件,执行响应的流程。mysql中进行条件判断的函数有if、ifu...

  • 27《MySQL 教程》聚合函数条件判断函数

    本小节介绍 MySQL 提供的 IF、IFNULL、CASE 三种条件判断函数或结构,条件判断是为了实现控制流,在...

  • Oracle与Mysql中的触发器(Trigger)对比

    Oracle触发器 Demo(通过触发器结合创建序列(sequence)的方式实现字段递增) Mysql 触发器(...

  • MySQL触发器

    在本节中,您将学习如何使用MySQL触发器。 根据定义,触发器或数据库触发器是自动执行以响应于在表中发生的特定事件...

网友评论

      本文标题:MySQL触发器中IF条件判断问题

      本文链接:https://www.haomeiwen.com/subject/twbpjhtx.html