2012-06-18 256 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