2014-01-21 72 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

相关问题