Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在状态为2的mysql中使用if条件_Mysql_Sql_Database Trigger - Fatal编程技术网

如何在状态为2的mysql中使用if条件

如何在状态为2的mysql中使用if条件,mysql,sql,database-trigger,Mysql,Sql,Database Trigger,创建状态为passed且状态为2的触发器,当del_status=2时,我需要在第二次更新行后创建跳跳虎 CREATE TRIGGER `exchange_log_update` AFTER UPDATE ON `exchange` FOR EACH ROW INSERT IF NEW.del_status = 2 INTO exchange_log SET client_id = NEW.client_id, ex_type = NEW.ex_type, segment_ty

创建状态为passed且状态为2的触发器,当del_status=2时,我需要在第二次更新行后创建跳跳虎

CREATE TRIGGER `exchange_log_update` AFTER UPDATE ON `exchange`
 FOR EACH ROW INSERT
IF NEW.del_status = 2
INTO
  exchange_log
SET
  client_id = NEW.client_id,
  ex_type = NEW.ex_type,
  segment_type = NEW.segment_type,
  validity_from = NEW.validity_from,
  validity_to = NEW.validity_to,
  file_upload = NEW.file_upload,
  log_status = 'update',
  created_at = NEW.created_at
END IF
END

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF NEW.del_status
INTO
  exchange_log
SET
  client_id = NEW.client_id,
  ex' at line 3
试试这个

CREATE TRIGGER `exchange_log_update_new` AFTER UPDATE ON `exchange`
 FOR EACH ROW BEGIN
    IF (NEW.del_status = 2)
    THEN
        INSERT INTO `exchange_log` 
              values(client_id = NEW.client_id,
              ex_type = NEW.ex_type,
              segment_type = NEW.segment_type,
              validity_from = NEW.validity_from,
              validity_to = NEW.validity_to,
              file_upload = NEW.file_upload,
              log_status = 'update',
              created_at = NEW.created_at);
    END IF;
  END

如果NEW.del_status=2,那么插入…这似乎与PHP无关。我编辑了你的标签。以后请检查您是否添加了正确的标记,这样您的问题就更有可能被具有相关专业知识的人看到。在独立的插入中,您无法摆脱该代码,为什么要在触发器中使用该代码。此外,我没有看到设置分隔符、终止语句或开始与结束匹配。