SQLite看不到这张表的所有列

编程语言 2026-07-12
self.cur.execute("DROP TABLE IF EXISTS analysisResults")

self.cur.execute("""CREATE TABLE IF NOT EXISTS analysisResults(
                    subjectID INTEGER
                    frameworkID INTEGER
                    scoreInFramework INTEGER)""")

self.cur.execute("""INSERT INTO analysisResults VALUES(1, 1, 1)""")

我删除表并重新创建它,然后尝试添加三个占位符值,但它却说我只有一列。是不是因为我在其他表中把 subjectIDframeworkID 当作主键的标识符?错误信息是:

sqlite3.OperationalError: 表analysisResults只有1 列,但提供了3 个值

解决方案

问题出在你的 CREATE_TABLE 语句上。应该用逗号来分隔列定义。当前,SQLite将其解释为一个名为 subjectID、类型为 INTEGERframeworkIDINTEGERscoreInFrameworkINTEGER 的列,这被视为一种自定义类型。所以,正确的代码应为:

self.cur.execute("DROP TABLE IF EXISTS analysisResults")

self.cur.execute("""CREATE TABLE IF NOT EXISTS analysisResults(
                    subjectID INTEGER,
                    frameworkID INTEGER,
                    scoreInFramework INTEGER)""")

self.cur.execute("""INSERT INTO analysisResults VALUES(1, 1, 1)""")
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章