insert + upsert работает в консоли sqlite3, но на python показывает синтаксическую ошибку - PullRequest
0 голосов
/ 03 декабря 2018

Я использую sqlite версии 3.25.1.Когда я выполняю следующий запрос в консоли sqlite, он работает:

insert into cases (bi, age, shape, margin, density, severity) 
values (5, 67, 3, 5, 3, 1)
on conflict(bi, age, shape, margin, density, severity) 
DO UPDATE SET frequency=frequency+1;

Но когда я выполняю его на python, он говорит:

sqlite3.OperationalError: near "on": синтаксическая ошибка

Вот мой код на python:

C.execute('insert into cases (bi, age, shape, margin, density, severity) '
          'values (5, 67, 3, 5, 3, 1)'
          'on conflict(bi, age, shape, margin, density, severity) '
          'DO UPDATE SET frequency=frequency+1', ())

Я не знаю, как заставить его работать.

1 Ответ

0 голосов
/ 03 декабря 2018

Возможно UPSERT не входит в версию sqlite3, которую загружает python.Из sqlite3 doc :

Синтаксис UPSERT был добавлен в SQLite с версией 3.24.0 (2018-06-04).

Найтиверсия sqlite в python:

>>> import sqlite3
>>> sqlite3.sqlite_version
...