python - SQLITE 3 如何在触发器子句 Python 中插入自定义函数

标签 python database python-2.7 sqlite

我正在尝试使用 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

请帮助我 :)

最佳答案

参见BEGINEND之间的语法部分 https://www.sqlite.org/lang_createtrigger.html

表达式必须以分号结束。您的触发器的 select 没有以分号结束。

关于python - SQLITE 3 如何在触发器子句 Python 中插入自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414612/

相关文章:

python - 如何将zerorpc作为greenlet运行?

python - 我应该使用什么 Python Web 框架与 GWT 来从 Python 后端流式传输 KML?

database - 如何防止 MariaDB 中导入表的重复 ID?

MYSQL 计数在 select 语句中

Python opencv 视频捕获给出中止陷阱

php - 单个网络服务器上的 PyPy + PHP

python - 以下原则对于 autobahn python 是否正确?

php - Codeigniter - 多个数据库连接

python - 使用附加字符对 UTF-8 输出中的正负符号进行编码

python - Python 请求 Session 对象是否在 gevent greenlet 之间共享,线程安全(在 greenlet 之间)?