插入和更新表之后的MySQL触发器

时间:2012-06-18 15:44:01

标签: mysql triggers

我创建了一个内容管理表。我不熟悉Mysql触发器。

     Key    Default     
      a     varchar(50)      
      b     varchar(50)      
      c     text      
      status    varchar(100)    

这是我的表。我创建了一个触发器当每个表更新表改变状态时。

 DELIMITER $$
    CREATE TRIGGER tr2 BEFORE insert or UPDATE ON p
    FOR EACH ROW BEGIN
     SET NEW.status = '1';
    END;
   $$
 DELIMITER ;

此触发器仅在修改行时更新。如何创建触发器以更改"状态"在每次插入和更新期间..请帮助我任何一个

1 个答案:

答案 0 :(得分:0)

这是不正确的语法。只需在更新前创建一个触发器

DELIMITER $$
    CREATE TRIGGER tr2 BEFORE UPDATE ON p
    FOR EACH ROW BEGIN
     SET NEW.date = '1';
    END;
   $$
 DELIMITER ;

并为列status = '1'设置默认值。

CREATE TABLE p(
a varchar(50),
b varchar(50),
c text,
status varchar(100) NOT NULL DEFAULT '1'
);

这样,无论何时向p中插入行并且未指定status的值,状态都将为1。您可以创建另一个触发器BEFORE INSERT,但我不建议这样做。而上述解决方案也是如此。