我的程序引发sqlite3.OperationalError
异常,并显示以下消息:
: near ",": syntax error
我有一个try-except块,它打印出SQL字符串。:
try:
self._db_cur.execute(sql)
except Exception, e:
print sql
raise e
这是打印的SQL ...最有趣的部分是...如果我在我的SQLite管理器中插入该查询... 它可以工作。我在这里很傻。
INSERT INTO connections_to_jjos(
connections_id,
jjo_error_id,
binder_task_id
)
VALUES
(
55,
(select id from jjo_errors where name = "--Unknown--"),
(select id from tasks where name = "DCDD")
)
,
(
55,
(select id from jjo_errors where name = "--Unknown--"),
(select id from tasks where name = "ANDD")
)
由于某些原因,我没有使用参数化语句,如果它有帮助......
答案 0 :(得分:3)
这可能是sqlite3
中的错误*。
虽然this测试代码适用于python3.3和sqlite 3.7.15.2,但fails使用sqlite 3.7.3。
这意味着它应该在较新的版本中修复,因此你需要更新你的sqlite版本(或python)才能使它工作,或者通过不使用多个值集来解决这个问题。
*编辑:实际上不是一个错误,只是一个仅在version 3.7.11
中引入的功能