sqlite no such table
在有时会在不同时刻创建数据表,这时候会创建多个OpenHelper操作数据库,有可能就会碰到no such table错误。
分析原因:创建数据库的表的时候,先判断数据库名是否相同,如果数据库名相同,并且数据库的版本名也是相同的,那么就会出现后面那张要创建的表通过OpenHelper的onCreate会创建失败,因为数据库名字和数据库版本名相同,就意味只操作同一个数据库,所以只会调用先前的OpenHelper的onCreate方法。
如果要创建成功后面的数据表有三种解决方法:
一、创建另外的数据库存放后面需要创建的表。(实际需求一般不这样做,一个项目不建议创建多个数据库)
二、将数据库的创建全部都写在一个OpenHelper里面。就没有先后顺序了版本也只有一个,不会出现多个OpenHelpe数据库的版本问题。直接在第一个OpenHelper里面将所有创建数据表的SQL语句执行完。
三、将后面创建表的SQL语句写在后面那个OpenHelper类的onUpgrade方法中,并且将(第一次创建数据库时,版本大小为0)版本在以前的基础上提升(将版本号变大),
如果当前传入的数据库版本号比上次创建或升级的版本号高,SQLiteOpenHelper就会调用onUpdate()方法。
实践发现。如果用第三种方法,在再次进入应用,调用第一个OpenHelper的构造方法,判断版本version的时候会出现版本向下转不了的情况,由于提升版本后,保存的是后面那个OpenHelper的高版本号,再次进入调用第一个OpenHelper的构造方法,两个版本不同,并且版本高于目前现在的这个OpenHelper的版本号,所以还是不可行,会出现onDowngrade转不了的错误。
还是建议使用第二种方法
sqlite no such table相关推荐
- SQLite - 下载安装与使用(Command Line Shell For SQLite)
1.下载并安装 登录SQLite官网:https://www.sqlite.org/index.html,下载SQLite已经编译过的文件(Precompiled Binaries for Windo ...
- SQLite 删除表
2019独角兽企业重金招聘Python工程师标准>>> SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据.索引.触发器.约束和该表的权限规范. 使用此命令时 ...
- SQLite 使用教程2 语法
http://www.runoob.com/sqlite/sqlite-syntax.html SQLite 语法 SQLite 是遵循一套独特的称为语法的规则和准则.本教程列出了所有基本的 SQLi ...
- SQLite命令行程序说明
sqlite3: 一个SQLite数据库的命令行接口 译者注 原文地址:http://www.sqlite.org/sqlite.html SQLite库包含一个名字叫做sqlite3的命令行,它可以 ...
- 轻量级数据库Sqlite的使用
SqLite是什么? SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置. 就像 ...
- SQLite 数据库注入总结
前言 SQLite 是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置.SQLite 与 ...
- SQLite学习手册(数据表和视图)
一.创建数据表: 该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则.但是对于一些SQLite特有的规则,我们会给予额外的说明.注:以 ...
- SQLite 删除表(http://www.w3cschool.cc/sqlite/sqlite-drop-table.html)
SQLite 删除表 SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据.索引.触发器.约束和该表的权限规范. 使用此命令时要特别注意,因为一旦一个表被删除,表中所有信息也将永 ...
- SQLite 创建表(http://www.w3cschool.cc/sqlite/sqlite-create-table.html)
SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表.创建基本表,涉及到命名表.定义列及每一列的数据类型. 语法 CREATE TABLE 语句的基 ...
最新文章
- 软件开发详细设计说明书_汽车软件开发之ASPICE系统需求过程组
- mpvue 从零开始 女友的来电 4 flyio
- ZooKeeper学习-- Zookeeper简单介绍
- android 双层饼图_python:给表格加上双层饼图,让同事的图表黯然失色
- Java定时任务原理
- Bailian4110 圣诞老人的礼物-Santa Clau’s Gifts【背包+贪心】
- 85相似标准形06——初等因子、初等因子与不变因子的求法
- Spark深入浅出企业级最佳实践
- 基于ARM+FPGA低成本高实时Ethercat运动控制器解决方案
- 原始Young不等式
- HuaWei ❀ 双协议栈
- 深入理解color model(颜色模型)
- Android手机中取得当前时区(以GMT形式)
- matlab cftool光滑曲线导出为什么就不光滑了_博学 MATLAB如何导出精美的论文插图...
- 淘气的小丁-使用jQuery实现漂浮气球的效果
- 隔行插入行——《超级处理器》应用
- Python杀死Excel?众多模块哪家强
- PHP导出Excel方法大全
- 产品经理(22) #运营
- 实现微信产品问题反馈群实时监控与问题自动录入(上)