插入+;upsert在sqlite3控制台中工作,但在python上显示语法错误
我使用的是sqlite版本3.25.1。 当我在sqlite控制台中执行以下查询时,它可以工作:插入+;upsert在sqlite3控制台中工作,但在python上显示语法错误,python,sqlite,sql-insert,upsert,Python,Sqlite,Sql Insert,Upsert,我使用的是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上执行它时,它
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.error:接近“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', ())
我不知道如何使它工作。有可能
UPSERT
不包含在python加载的sqlite3版本中。从:
UPSERT语法已添加到版本为3.24.0(2018-06-04)的SQLite中
要在python中查找sqlite版本,请执行以下操作:
>>> import sqlite3
>>> sqlite3.sqlite_version
python加载的sqlite3版本中可能不包含
UPSERT
。从:
UPSERT语法已添加到版本为3.24.0(2018-06-04)的SQLite中
要在python中查找sqlite版本,请执行以下操作:
>>> import sqlite3
>>> sqlite3.sqlite_version
请在第二行末尾的引号内加一个空格。@thesilkworm,我试过了,但仍显示语法错误。请在第二行末尾的引号内加一个空格。@thesilkworm,我试过了,但仍显示语法错误是的,你是对的。版本是3.20.1。我该怎么升级呢?恐怕这超出了我的理解范围。也许这是一个很好的起点。是的,你是对的。版本是3.20.1。我该怎么升级呢?恐怕这超出了我的理解范围。这可能是一个很好的起点。