我需要在SQLite中增加递归触发器的最大深度。
我知道我需要将SQLITE_MAX_TRIGGER_DEPTH
设置为我想要的值,但我找不到这样做的方法。
我试过PRAGMA SQLITE_MAX_TRIGGER_DEPTH = X
并没有用。
关于如何设置此变量的任何想法? 谢谢!
引用SQLite文档:
SQLite限制了触发器的递归深度,以防止涉及的语句 使用无限量内存的递归触发器。
在SQLite版本3.6.18之前,触发器不是递归的,因此这个限制毫无意义。从版本3.6.18开始,支持递归触发器,但必须使用PRAGMA recursive_triggers语句显式启用。从版本3.7.0开始,默认情况下启用递归触发器,但可以使用PRAGMA recursive_triggers手动禁用。只有在启用了递归触发器时,SQLITE_MAX_TRIGGER_DEPTH才有意义。
默认的最大触发递归深度为1000。
答案 0 :(得分:2)
PRAGMA recursive_triggers
仅用于启用递归触发器。
SQLITE_MAX_TRIGGER_DEPTH
参数是一个C预处理器符号,在编译SQLite本身时必须设置它;在运行时不可能增加它。