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()withSQLITE_DBCONFIG_ENABLE_TRIGGER临时禁用触发器。

于 2012-10-17T10:34:31.377 回答