簡體   English   中英

insert + upsert在sqlite3控制台中有效,但是在python上它顯示語法錯誤

[英]insert + upsert works in sqlite3 console, but on python it shows syntax error

我正在使用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:“開”附近:語法錯誤

這是我在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', ())

我不知道如何使它工作。

python加載的sqlite3版本中可能未包含UPSERT sqlite3 doc中

UPSERT語法已添加到SQLite版本3.24.0(2018-06-04)中。

要在python中找到sqlite版本:

>>> import sqlite3
>>> sqlite3.sqlite_version

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM