0

我为内容管理创建了一个表。我不熟悉 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 ;

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

4

1 回答 1

0

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

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

并为 column 设置默认值status = '1'

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

这样,每当您在 p 中插入一行并且不为状态指定值时,状态将为1. 您可以创建另一个触发器BEFORE INSERT,但我不建议这样做。上述解决方案也是如此。

于 2012-06-18T16:13:52.143 回答