【问题标题】:MySQL Trigger IF ConditionMySQL 触发 IF 条件
【发布时间】:2016-08-13 18:22:16
【问题描述】:

我想在插入另一个表时填充表中的一些列值,并为特定列设置条件。我使用触发器:

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 条件附近得到语法错误:

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

【问题讨论】:

    标签: mysql triggers


    【解决方案1】:
    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 ;
    

    【讨论】:

    • 我得到以下信息:“ERROR 1193 (HY000): Unknown system variable 'col3'”,其中 col3 为 varchar 类型,col1, clo2 为 INT 类型跨度>
    • 查看我的更新。 col3 需要在 insert 语句中。
    猜你喜欢
    • 2016-01-22
    • 1970-01-01
    • 2017-03-13
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    相关资源
    最近更新 更多