8
A
回答
7
我写了一个很简单的扩展功能来设置一个布尔值true或false。
还有一个函数来检索这个值(GetAllTriggersOn())。
有了这个功能,我可以这样定义我的所有触发器:
CREATE TRIGGER tr_table1_update AFTER UPDATE ON TABLE1 WHEN GetAllTriggersOn()
BEGIN
-- ...
END
1
6
SQLite将架构(元)信息存储在内置的sqlite_master
表中。
要获取可用触发的列表,请使用以下查询:
SELECT name FROM sqlite_master
WHERE type = 'trigger' -- AND tbl_name = 'a_table_name'
3
所以这里是2015年和目前仍然没有“禁止触发器的” SQLite中。对于移动应用程序,这可能会产生问题 - 尤其是如果它是需要脱机功能和本地数据的公司应用程序。
即使您没有将每个插入包装在单个事务中,也可以通过触发器执行来减缓初始数据加载以进行爬网。
我用SQLite SQL很简单地解决了这个问题。我有一个不参与init加载的设置表。它包含键/值对的“列表”。我有一个名为'fireTrigger'的键,其值为0或1.每个触发器都有一个表达式来选择值,如果它等于1,则触发触发器,否则触发器不触发。
此表达式是对与触发器相关的数据评估的任何表达式的补充。例如:
AND 1 = (SELECT val FROM MTSSettings WHERE key = 'fireTrigger')
在简单的清洗效果,这允许我禁用/启用一个简单UPDATE
将设置表
0
扩展在尼克Dandoulakis的回答了扳机,你可以放下所有相关的触发器,然后恢复它们在交易完成之前:
BEGIN;
SELECT name, sql FROM sqlite_master WHERE type = 'trigger' AND tbl_name = 'mytable';
-- store all results
-- for each name: DROP TRIGGER $name;
-- do normal work
-- for each sql: execute the SQL verbatim
COMMIT;
相关问题
- 1. 禁用功能安全处理XML的
- 2. 如何写一个触发功能jQuery的触发器()
- 3. 如何处理缺失参数的Htaccess
- 4. android.net.TrafficStats缺失功能
- 5. 如何触发功能?
- 6. 如何处理基于更改的表名/列的sqlite触发器?
- 7. pyinotify:处理IN_MODIFY触发器
- 8. 使用Next_Day功能的Sql触发器
- 9. 当组件缺失时禁用应用程序功能
- 10. DocDb模拟器缺失功能
- 11. 触发功能
- 12. 触发功能
- 13. Android SQlite触发器
- 14. 如何禁用空处理器
- 15. 触发器如何处理事务的并发可见性?
- 16. 熊猫:处理缺失列
- 17. angular2 ng2d3功能缺失?
- 18. Activiti Modeler缺失功能
- 19. 语境缺失功能
- 20. 触发事件处理器回发c#
- 21. 禁用触发器挂起?
- 22. Android中的SQLite触发器?
- 23. Basecamp中用于软件开发管理和协作的最大缺失功能
- 24. 在caret :: train功能中使用bagImpute预处理时缺失值错误
- 25. 如何在Maven Build成功后触发批处理文件?
- 26. jQuery的触发器 - “变”功能
- 27. 如何禁用js功能?
- 28. 如何处理SQLite的
- 29. SQLite事务处理器性能问题
- 30. 如何在此触发器中使用concat功能
你是如何在SQLite中创建函数的? – Ivan 2017-03-14 21:34:47