请求创建MySQL单条记录触发器:设置创建与更新时间戳
MySQL 触发器实现创建/更新时间自动赋值
核心说明
FOR EACH ROW 就是专门针对单条触发记录的操作逻辑,触发器触发时,NEW 关键字代表当前要插入/更新的那条记录,直接通过它就能对单条记录的字段赋值。
1. 插入时自动设置 CREATE_DATE
创建BEFORE INSERT触发器,在插入新记录前,给当前待插入记录的CREATE_DATE赋值为当前时间戳:
DELIMITER // CREATE TRIGGER trg_table_insert_create_date BEFORE INSERT ON your_table_name FOR EACH ROW BEGIN SET NEW.CREATE_DATE = CURRENT_TIMESTAMP; END // DELIMITER ;
- 把
your_table_name替换成你的实际表名 BEFORE INSERT确保赋值操作在插入执行前完成,保证插入的记录自带正确的创建时间
2. 更新时自动设置 UPDATE_DATE
创建BEFORE UPDATE触发器,在更新记录前,给当前待更新记录的UPDATE_DATE赋值为当前时间戳:
DELIMITER // CREATE TRIGGER trg_table_update_update_date BEFORE UPDATE ON your_table_name FOR EACH ROW BEGIN SET NEW.UPDATE_DATE = CURRENT_TIMESTAMP; END // DELIMITER ;
- 同样替换
your_table_name为实际表名 - 每次更新任意字段时,都会自动更新当前行的
UPDATE_DATE为最新时间
补充提示
- 如果你的MySQL版本支持,也可以直接用
NOW()替代CURRENT_TIMESTAMP,效果一致 - 触发器命名建议带上表名和操作类型,方便后期维护识别
内容的提问来源于stack exchange,提问作者Icy B
相关产品推荐
相关产品推荐

