是否有可能让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接口。但是,这样的调用不能关闭数据库连接,也不能结束或重置正在运行函数的准备语句。