我正在尝试在 sqlite 中实现与“ON UPDATE CURRENT_TIMESTAMP”MySQL 功能等效的功能。
我的想法是使用这样的触发器:
CREATE TRIGGER last_update_trigger
AFTER UPDATE
ON mytable
FOR EACH ROW
BEGIN
UPDATE mytable SET last_update = CURRENT_TIMESTAMP WHERE id = old.id;
END
但这有一个问题。每次该表的记录发生更新时,触发器都会触发同一记录的新更新。这应该会一次又一次地触发触发器,从而导致更新的无限循环。
这真的会发生吗?我的触发器中的更新会再次触发触发器吗?
我可以避免触发触发器内的触发器吗?
我们正在谈论 SQLite,对吧?
最初,递归触发器(上面怀疑的无限循环)是not专门支持防止此问题。它们现在受支持,但默认情况下处于关闭状态。你可以,理论上 http://sqlite.org/pragma.html#pragma_recursive_triggers,重新打开它们
PRAGMA recursive_triggers = ON;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)