如何在状态为2的mysql中使用if条件
创建状态为passed且状态为2的触发器,当del_status=2时,我需要在第二次更新行后创建跳跳虎如何在状态为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
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无关。我编辑了你的标签。以后请检查您是否添加了正确的标记,这样您的问题就更有可能被具有相关专业知识的人看到。在独立的插入中,您无法摆脱该代码,为什么要在触发器中使用该代码。此外,我没有看到设置分隔符、终止语句或开始与结束匹配。