0
我不明白SQLite 3.8.6中的触发器递归。PRAGMA recursive_triggers不会禁用递归触发器
从我的理解设置PRAGMA recursive_triggers
到0
应该防止触发器触发另一个触发器。
但这里是实际发生的事情对我来说一个例子:
sqlite> PRAGMA recursive_triggers;
0
sqlite> CREATE TABLE t1(a TEXT, b TEXT, c TEXT);
sqlite> CREATE TRIGGER on_insert AFTER INSERT ON t1
...> BEGIN
...> UPDATE t1 SET b="c" WHERE rowid=NEW.rowid;
...> END;
sqlite> CREATE TRIGGER on_update_b AFTER UPDATE OF b ON t1
...> BEGIN
...> SELECT RAISE(fail,"triggered update b!");
...> END;
sqlite> INSERT INTO t1 VALUES("a","b","c");
Error: triggered update b!
我可能误解了什么......
是否有可能阻止on_update_b
触发器被触发?
好的,谢谢。我可以防止触发'on_insert'来触发'on_update_b'(我希望这个触发器只能由用户触发)? – jkd 2014-09-02 13:40:10
触发器可以从数据库中读取数据(这对您没有帮助),并检查NEW.xxx值。在某些专栏中您需要一些特殊的价值。 – 2014-09-02 13:42:20