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_DEPTHSQLite 自体をコンパイルするときに設定する必要がある C プリプロセッサ シンボルです。実行時に増やすことはできません。

于 2012-10-03T17:44:30.887 に答える