【问题标题】:Mysql trigger update time [duplicate]Mysql触发器更新时间[重复]
【发布时间】:2020-02-18 13:04:20
【问题描述】:

我尝试在更新表后更新新的 update_time。我怎么了?

DELIMITER $$
CREATE TRIGGER after_update AFTER UPDATE ON urunler
    FOR EACH ROW 
        BEGIN
            IF NEW.adi != OLD.adi THEN
                UPDATE urunler SET update_time=now();
            END IF;
        END$$
DELIMITER ;

遇到错误

#1442 - Can't update table 'urunler' in stored function/trigger because it is already used by statement which invoked this stored function/trigger

用“之前”解决,而不是之后......

【问题讨论】:

标签: mysql sql-update database-trigger


【解决方案1】:

对同一个表应用 DML 操作可能会引发变异表错误。

而是将UPDATE urunler SET update_time=now(); 替换为SET new.update_time = now();

其中[old/new].update_time 表达式表示该表中的一列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多