ADD COLUMN 在 FOREIGN KEY 子句中引用了一个关键字列,而 SQLite 无法再读取该表
作者: LeMikaelF创建于 2026年9月16日更新于 2026年9月16日
标签compatibilityfuzzingschema changesforeign keys
-- 在 turso 中:
CREATE TABLE t0("id" INTEGER PRIMARY KEY);
CREATE TABLE t1("id" INTEGER PRIMARY KEY, "order" REAL, FOREIGN KEY("order") REFERENCES "t0"("id"));
ALTER TABLE t1 ADD COLUMN added INTEGER;
SELECT sql FROM sqlite_master WHERE name = 't1';
-- turso: CREATE TABLE t1 (id INTEGER PRIMARY KEY, "order" REAL, added INTEGER, FOREIGN KEY (order) REFERENCES t0(id))
-- SQLite 打开文件: 数据库架构(t1)格式不正确 - 附近的 "order": 语法错误
t1 上的每个语句在 SQLite 中都失败,包括 PRAGMA integrity_check。原因与 #9068 相同(在那里,引号在表级别的 PRIMARY KEY 中丢失,而 turso 本身也无法重新打开文件)。
内容来源: tursodatabase/turso