2

我需要增加 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。

4

1 回答 1

2

PRAGMA recursive_triggers仅用于启用递归触发器。

SQLITE_MAX_TRIGGER_DEPTH参数是一个C预处理器符号,在编译SQLite本身时必须设置;在运行时增加它是不可能的。

于 2012-10-03T17:44:30.887 回答