更新时间戳触发器无法正常工作

时间:2014-06-24 06:16:38

标签: mysql triggers

Iam尝试在表的特定字段上创建触发器。每次该列的值更改时间戳应该记录在timestamp列字段中,即ticket_close_time(data tytpe timestamp)。但每次我尝试执行触发器我得到一个错误“#1064 - 你的SQL语法有错误;请查看与你的MySQL服务器版本相对应的手册,以便在第6行附近使用正确的语法” 我只是不明白问题是什么。我已经尝试过now(),current_timestamp但是没有任何效果我只是不断收到错误。

TRIGGER CODE

DELIMITER //
CREATE TRIGGER updtrigger BEFORE UPDATE ON ticket_tran
     FOR EACH ROW
     BEGIN
        IF NEW.ticket_resolved_flag <> OLD.ticket_resolved_flag THEN
           SET NEW.ticket_close_time = now();     
        END IF;
     END
   //

1 个答案:

答案 0 :(得分:0)

没有必要使用触发器执行此操作,mysql具有原生的ON UPDATE CURRENT_TIMESTAMP

请参阅: http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

至于你的触发器:我无法发现语法错误。我认为问题是分隔符仍然设置为;确保已将分隔符设置为其他内容;在执行CREATE TRIGGER语句之前。您可以通过执行以下命令来执行此操作:

DELIMITER //