2012-06-18 174 views
0

我创建了一个表的内容management.I不熟悉Mysql触发器。MySQL触发后插入和更新表

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

这是我的table.I创建的触发器当每个表更新表更改状态。

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

这触发只有当行会被修改。如何可以改变创建触发器每个插入和更新过程中的“状态”更新..请帮我任何一个

回答

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和不指定状态的值这样的话,状态会1。您可以创建另一个触发器BEFORE INSERT,但我不建议这样做。而上面的解决方案也是这样。

+0

@ user1032289编辑我的答案,使事情更清晰。 – fancyPants