代码之家  ›  专栏  ›  技术社区  ›  Moeinh77

触发器不使用MySQL

  •  0
  • Moeinh77  · 技术社区  · 7 年前

    我写了这个代码:

    CREATE TRIGGER testT BEFORE INSERT ON test3 
    FOR EACH ROW 
    IF NEW.a> NEW.b
    THEN NEW.a=0
    

    在mysql和表test3(a,b)中

    我想要的是,如果用户在test3和a>b中插入了a和b,那么a变为0,我应该如何编写它?因为目前这个代码不起作用,我得到mysql说:

    .1064-您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解要使用的正确语法。 在2号线附近,.a=0'

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nico Haase    7 年前

    这不是触发器的有效语法,您忘记了使用 SET . 试试这个:

    CREATE TRIGGER testT 
    BEFORE INSERT ON test3 
    FOR EACH ROW 
     IF NEW.a> NEW.b
      THEN SET NEW.a=0;
     END IF;