You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决Python中sqlite3.OperationalError: incomplete input错误?

解决sqlite3.OperationalError: incomplete input错误

嗨,这个问题其实很好排查——你在第7行写的CREATE TABLE SQL语句语法不完整!

看你原代码里的这一行:

cursor.execute("CREATE TABLE veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER")

你仔细看,括号只打开了一个,结尾漏掉了闭合的)!SQLite解析这条语句时,发现语句没写完,自然就抛出了incomplete input错误。

修正后的代码

只需要给SQL语句补上结尾的括号就行:

import sqlite3
con = sqlite3.connect("database.db")
cursor = con.cursor()
def tablo_olustur():
    # 补上了结尾的括号
    cursor.execute("CREATE TABLE veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER)")
    con.commit()
def veri_ekle():
    cursor.execute("insert into veritabani Values('İstanbul Hatırası', 'Ahmet Ümit', 'Everest', 561)")
    con.commit()
tablo_olustur()
veri_ekle()
con.close()

额外小建议

为了避免重复运行代码时出现“表已存在”的错误,你可以给CREATE TABLE加上IF NOT EXISTS,让语句更健壮:

cursor.execute("CREATE TABLE IF NOT EXISTS veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER)")

内容的提问来源于stack exchange,提问作者satck olerfowl user

火山引擎 最新活动