sqlite 触发器会触发其他触发器吗?

Joh*_*nal 6 sqlite triggers timestamp sql-update

我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)

但这有一个问题。每次该表的记录发生更新时,触发器都会触发同一记录的新更新。这应该会一次又一次地触发触发器,从而导致更新的无限循环。

这真的会发生吗?我的触发器中的更新会再次触发触发器吗?我可以避免触发触发器内的触发器吗?

Wil*_*ard 4

我们正在谈论 SQLite,对吧?

最初,没有专门支持递归触发器(上面怀疑的无限循环)来防止此问题。它们现在受支持,但默认情况下处于关闭状态。理论上,您可以使用以下命令重新打开它们

PRAGMA recursive_triggers = ON;
Run Code Online (Sandbox Code Playgroud)