我的 SQL 代码在尝试从 python sqlite 模块运行时抛出错误,但直接在 sqlite3 中运行良好

问题描述 投票:0回答:1

我的Python程序中有这段代码:

sql_statements = [
    """CREATE TABLE IF NOT EXISTS users (
    user_id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT NOT NULL,
    name TEXT NOT NULL,
    password_hash TEXT NOT NULL,
    status BOOLEAN NOT NULL DEFAULT FALSE,
    admin BOOLEAN NOT NULL DEFAULT FALSE
    );"""
]

with sqlite3.connect(database_filename) as db:
    cursor = db.cursor()
    for statement in sql_statements:
        cursor.execute(statement)
    db.commit()

但是,当我尝试运行它时,我收到此错误:

  File "/Users/elijahyajaman/memberize/app.py", line 14, in <module>
    cursor.execute(statement)
sqlite3.OperationalError: near "AUTOINCREMENT": syntax error

我首先尝试运行python程序,并收到上述错误。直接在sqlite3中运行语句成功。我拥有所有必需的进口。

python sql sqlite
1个回答
0
投票

根据文档:https://www.sqlite.org/faq.html#q1 使用

INTEGER PRIMARY KEY
INTEGER PRIMARY KEY AUTOINCREMENT
列。

© www.soinside.com 2019 - 2024. All rights reserved.