从sqlite3触发器启动Python脚本



是否有可能让sqlite3有一个触发器,将启动一个python脚本?我有一个表,其中有一个项目列表,我正在监控一个网页上的评论。有些项目没有。我有一个脚本,定期检查项目,并根据它为每个项目找到的内容更新项目表。我想有它,以便当项目表更新时,触发器可以启动一个python脚本,然后可以运行和更新其他表基于它从其他网站拉的数据。

这可能吗?

SQL语句(也在触发器内部)可以调用用户定义的函数,这些函数是用create_function:

创建的
import sqlite3
def hello(x):
    print "Hello"
con = sqlite3.connect(":memory:")
con.create_function("hello", 1, hello)
cur = con.cursor()
cur.execute("CREATE TABLE t(x)")
cur.execute("CREATE TRIGGER tt AFTER INSERT ON t BEGIN SELECT hello(NEW.x); END;")
cur.execute("INSERT INTO t VALUES(1)")

函数允许更改数据库;文档说:

允许应用程序定义的函数调用其他SQLite接口。但是,这样的调用不能关闭数据库连接,也不能结束或重置正在运行函数的准备语句。

最新更新