在PyCharm中用Python操作SQLite数据库时持续触发DatabaseError错误
解决sqlite3.DatabaseError: file is not a database错误
1. 修正SQL语法错误
你的CREATE TABLE语句存在两处语法问题:
[IF NOT EXISTS]不需要方括号,正确写法是IF NOT EXISTS- 列定义重复标识:
column_1 id INTEGER PRIMARY KEY错误地同时写了列名和冗余标识,根据命名逻辑修正后的语句如下:
import sqlite3 conn = sqlite3.connect('database.sqlite') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS user_prompts ( id INTEGER PRIMARY KEY, gender TEXT, name TEXT ) ''') conn.commit() conn.close()
2. 删除损坏的数据库文件
之前错误的SQL执行可能生成了损坏的database.sqlite文件,该文件已不属于合法SQLite数据库,导致后续连接报错。操作步骤:
- 找到项目目录下的
database.sqlite文件并删除 - 重新运行修正后的代码,sqlite3会自动创建全新的合法数据库文件
3. 验证数据库合法性
若重新创建后仍报错,可通过以下方式验证:
- 检查生成的
database.sqlite文件大小,正常初始SQLite数据库文件约几KB,而非0字节或极小文件 - 使用PyCharm内置的Database工具连接该文件,确认能正常识别数据库结构
内容的提问来源于stack exchange,提问作者Mark account
相关产品推荐
相关产品推荐

