我有两个主题:一个读者和一个作家。数据库设置为WAL模式下的日志。我在reader对象上创建了以下触发器:
CREATE TEMPORARY TRIGGER 'Foo.trigg' IF NOT EXISTS AFTER INSERT ON Foo FOR EACH ROW BEGIN SELECT bar(NEW.id, NEW.value); END;
其中bar也是安装在两个对象上的自定义函数。我在吧台上放了一个断点,它永远不会到达。我做错了什么(可能在其他地方)或者SQLite不支持这样的跨线程信令吗? (我倾向于我做错了,因为即使我在写线程对象上创建了触发器,它似乎也没有碰到断点)
答案 0 :(得分:1)
SQLite不是客户端/服务器数据库,它只是一个直接访问数据库文件的嵌入式库。 所有SQLite连接都是完全独立的。
触发器在执行触发触发器的实际命令的同一连接内运行,并调用在该连接中注册的用户定义函数。