You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跟随Flask教程时持续遭遇sqlite3.OperationalError错误求助

解决sqlite3.OperationalError: near "author_id": syntax error问题

你的错误完全来自schema.sql中的语法错误,以下是两处关键问题及修正方案:

错误1:字段名格式错误

在post表定义中,你把字段名写成了author id,SQL中字段名不能包含空格,正确的字段名应该是author_id:

-- 错误写法
author id INTEGER NOT NULL

-- 正确写法
author_id INTEGER NOT NULL

错误2:外键语法错误

SQL中外键的定义需要将外键字段和引用的表字段用括号包裹,你当前的写法不符合规范:

-- 错误写法
FOREIGN KEY author_id REFERENCES user_tb id

-- 正确写法
FOREIGN KEY (author_id) REFERENCES user_tb(id)

修正后的完整schema.sql

DROP TABLE IF EXISTS user_tb;
DROP TABLE IF EXISTS post;

CREATE TABLE user_tb (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE NOT NULL,
    password TEXT NOT NULL
);

CREATE TABLE post (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    author_id INTEGER NOT NULL,
    created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    title TEXT NOT NULL,
    body TEXT NOT NULL,
    FOREIGN KEY (author_id) REFERENCES user_tb(id)
);

替换你的schema.sql后,重新执行flask init-db命令,即可完成数据库初始化,错误会消失。

内容的提问来源于stack exchange,提问作者hunterb21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:10:15