MySQL触发器IF条件

时间:2016-04-20 20:29:16

标签: mysql triggers

我希望在插入另一个表时填充表中的某些列值,并具有特定列的条件。我使用触发器:

CREATE TRIGGER inserttrigger AFTER INSERT ON table1 FOR EACH ROW INSERT INTO table2 SET col1 = NEW.col1, col2 = NEW.col2;  IF LENGTH(NEW.col3) > 20 THEN SET col3 = NEW.col3 END IF;

我在IF条件附近得到语法错误:

  

错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“END IF”附近使用正确的语法

1 个答案:

答案 0 :(得分:0)

delimiter |
CREATE TRIGGER inserttrigger AFTER INSERT ON table1 
FOR EACH ROW 
BEGIN
   INSERT INTO table2 
   SET col1 = NEW.col1, 
       col2 = NEW.col2,
       col3 = case when LENGTH(NEW.col3) > 20 
                   then NEW.col3
              end;
END
|
delimiter ;