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)
但这有一个问题。每次该表的记录发生更新时,触发器都会触发同一记录的新更新。这应该会一次又一次地触发触发器,从而导致更新的无限循环。
这真的会发生吗?我的触发器中的更新会再次触发触发器吗?我可以避免触发触发器内的触发器吗?
我们正在谈论 SQLite,对吧?
最初,没有专门支持递归触发器(上面怀疑的无限循环)来防止此问题。它们现在受支持,但默认情况下处于关闭状态。理论上,您可以使用以下命令重新打开它们
PRAGMA recursive_triggers = ON;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2654 次 |
| 最近记录: |