Python使用SQLite时提示ORGANIZATION表已存在的原因是什么?
报错原因
你遇到的「ORGANIZATION表已存在」报错核心原因是:代码每次运行都会无条件执行CREATE TABLE建表语句。
- 第一次运行代码时,会在example4.db数据库中成功创建ORGANIZATION表,写入数据后程序正常退出
- 第二次及之后运行代码时,同路径下的example4.db已经存在ORGANIZATION表,SQLite默认不允许重复创建同名表,因此直接抛出该错误
修复方案
- 把建表语句替换为
CREATE TABLE IF NOT EXISTS ORGANIZATION,这样只有表不存在时才会执行建表逻辑,已存在则直接跳过,不会触发报错 - 额外注意:你当前代码每次运行都会插入一条ID为1的相同数据,后续如果设置ID为主键,还会触发主键重复报错,可根据需求调整插入逻辑,调试阶段也可以每次运行前删除旧的example4.db文件验证全流程
- 另外你的建表语句中字段类型写的
chair(250)是拼写错误,正确的定长字符类型应该是char(250),不过SQLite对数据类型的校验比较宽松,这个问题不会触发本次的表已存在报错,但建议修正避免后续读写数据出现异常
内容的提问来源于stack exchange,提问作者chrisis
相关产品推荐
相关产品推荐

