MySQL'更新时间戳'列 - 触发器

max*_*gen 9 mysql triggers

我正在为我的许多表添加一个tsu类型的列(时间戳更新)DATETIME.

我需要编写BEFORE UPDATE将更新列的触发器CURRENT_TIMESTAMP(),但我无法正确.尝试:

DELIMITER $$
CREATE
    TRIGGER `cams`.`tsu_update_csi` BEFORE UPDATE
    ON `cams`.`csi`
    FOR EACH ROW BEGIN
        UPDATE csi SET tsu = CURRENT_TIMESTAMP WHERE csi_code = OLD.csi_code;
    END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

任何人都能指出我正确的方向吗?MTIA

Cal*_*len 16

好的,试试这个:

DELIMITER $$ CREATE  
    TRIGGER `cams`.`tsu_update_csi` BEFORE UPDATE  
    ON `cams`.`csi`  
      FOR EACH ROW BEGIN  
        SET NEW.tsu = CURRENT_TIMESTAMP;   
END$$ DELIMITER ;
Run Code Online (Sandbox Code Playgroud)


Cal*_*len 10

如果该字段可以定义为时间戳,则可以使用以下内容:

ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
              ON UPDATE CURRENT_TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)