2

特定のコンテキストでトリガーしたくないテーブルにトリガーがあります。

これを行うために、次のことを計画しています。

  1. データベースのロック
  2. トリガーを落とす
  3. 私の操作を実行する
  4. トリガーの追加
  5. データベースのロック解除

データベースのロックは、トリガーが元の位置に戻るまで、他のスレッドが実行しようとする操作を停止するために必要です。Cコードからこれを行うにはどうすればよいですか?

4

2 に答える 2

2

およびSQLを使用して、トランザクションで作業を実行します。BEGIN TRANSACTIONCOMMIT TRANSACTION

BEGIN TRANSACTION;
DROP TRIGGER dbname.triggername;
(do other stuff)
CREATE TRIGGER ...;
COMMIT TRANSACTION;
于 2012-10-17T07:08:03.657 に答える
0

sqlite3_db_config()withを使用しSQLITE_DBCONFIG_ENABLE_TRIGGERて、トリガーを一時的に無効にします。

于 2012-10-17T10:34:31.377 に答える