You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求调试MariaDB表更新触发器代码:自动更新DateModifica字段

MariaDB 更新触发器调试方案

你的代码存在两个核心问题:

  • 使用AFTER UPDATE触发器时,内部再执行UPDATE语句会触发循环调用,导致死循环或数据库报错。
  • 无需额外执行UPDATE操作,直接在更新前修改待写入的记录字段即可。

以下是修正后的完整代码:

DELIMITER //
CREATE TRIGGER update_DateMod
BEFORE UPDATE ON table1
FOR EACH ROW
BEGIN
    SET NEW.DateModifica = CURRENT_TIMESTAMP();
END //
DELIMITER ;

关键说明:

  • BEFORE UPDATE:在记录更新操作生效前触发,直接修改NEW对象(即将写入数据库的新记录)的字段,避免额外更新操作。
  • FOR EACH ROW:指定触发器对每一条被更新的记录生效,这是行级触发器的必填声明。
  • NEW.DateModifica:直接引用待更新记录的目标字段,赋值CURRENT_TIMESTAMP()即可自动填充当前时间。
  • 分隔符修改:由于触发器体包含分号,临时将SQL分隔符改为//,防止数据库提前截断触发器定义,完成后再改回默认的;。

内容的提问来源于stack exchange,提问作者Roberto Rossi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:22:02