2014-01-21 82 views
0


我有一個MySQL(67年5月1日)表 '跟蹤' 與時間戳字段 'CLOSE_TIME'。
在同一個表中,我有字符串字段'狀態'。
我想用CURRENT_TIMESTAMP值更新CLOSE_TIME場時狀態場更新爲特定的文本值,例如「關閉」。MySQL的ON UPDATE觸發 - 更新CURRENT_TIMESTAMP相同的表和條件

這裏是INSERT樣本: How can I write a trigger that updates rows in the same table, before the insert is commited?

我想類似的東西:

​​

但我得到的錯誤:你在你的SQL語法...在第4行
有一個錯誤

我嘗試了一些其他的變化,我發現但他們都沒有工作。 請幫助爲我的情況創建正確的觸發器。

回答

0

您是否設置了DELIMITER

這應該工作:

DELIMITER $$ 

CREATE TRIGGER `close_time_trigger` BEFORE UPDATE ON `tracker` FOR EACH ROW 
     BEGIN 
    IF NEW.status = 'Closed' THEN 
    SET NEW.close_time = CURRENT_TIMESTAMP;  
    END IF; 
    END $$ 

DELIMITER ;  
-1

你沒有告訴它要更新什麼。

CREATE TRIGGER `close_time_trigger` BEFORE UPDATE ON `tracker` FOR EACH ROW 
     BEGIN 
    IF NEW.status = 'Closed' THEN 
     update tracker 
     SET NEW.close_time = CURRENT_TIMESTAMP; 
    END IF; 
    END 
+0

你是什麼意思?我想在UPDATE事件上創建觸發器。這裏是「更新前」和「新」的示例:http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html – Vladimir

+0

我的不好,我錯過了。更新之前工作,但之後也會。我認爲你的更新聲明是錯誤的。我將編輯我的答案 – Alexo912

+0

我也試過這種方式,但同樣的SQL語法錯誤,在第5行... – Vladimir

相關問題