2012-10-17 66 views
2

我在桌面上有一個觸發器,我不想在特定的上下文中觸發。如何鎖定SQLite數據庫?

爲了做到這一點,我打算:

  1. 鎖定數據庫
  2. 跌落觸發
  3. 執行我的操作
  4. 將觸發
  5. 解鎖數據庫

鎖定數據庫是必要的,所以其他線程嘗試執行的任何操作都將暫停,直到觸發器恢復到位。我如何從C代碼執行此操作?

回答

2

使用BEGIN TRANSACTIONCOMMIT TRANSACTION SQL在a transaction執行工作:

BEGIN TRANSACTION; 
DROP TRIGGER dbname.triggername; 
(do other stuff) 
CREATE TRIGGER ...; 
COMMIT TRANSACTION;