SQLite看不到这张表的所有列
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)""")
我删除表并重新创建它,然后尝试添加三个占位符值,但它却说我只有一列。是不是因为我在其他表中把 subjectID 和 frameworkID 当作主键的标识符?错误信息是:
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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。