我正在尝试使用 python 在 sqlite 的触发子句中包含一个自定义函数,我可以在调用自定义函数时调用自定义函数,但是我正在尝试将自定义函数包含在一个触发子句
这是我的自定义函数创建
self.conn.create_function("autocsvok", 1, self.syslog_autocsv)
这是我的回调python函数
def syslog_autocsv(self,value):
print value
我可以调用回调函数
sql2='select autocsvok("ss")'
self.cur.execute(sql2)
这给了我输出
ss
但是,现在我尝试将自定义函数包含在触发器子句中
sql3='''CREATE TRIGGER liiasssaa BEFORE INSERT ON syslog BEGIN
select autocsvok("55")
END'''
self.cur.execute(sql3)
print self.cur.fetchone()[0]
这给了我以下错误
File "syslog.py", line 105, in syslog_createfunction
self.cur.execute(sql1)
sqlite3.OperationalError: near "END": syntax error
请帮助我 :)
最佳答案
参见BEGIN
和END
之间的语法部分
https://www.sqlite.org/lang_createtrigger.html
表达式必须以分号结束。您的触发器的 select
没有以分号结束。
关于python - SQLITE 3 如何在触发器子句 Python 中插入自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414612/