SQLite添加新的字段
通过alter添加新的字段SQL语句
"ALTER TABLE 'DiHKChatMessage' ADD 'phoneNum' varchar";
但是如果这个字段已经存在的话,运行程序直接会崩溃,那怎么解决?
我们可以在添加字段之前,对数据库进行判断看是否已经存在该字段了,方法如下:
/**
* 方法1:检查某表列是否存在
* @param db
* @param tableName 表名
* @param columnName 列名
* @return
*/
private static boolean checkColumnExist1(SQLiteDatabase db, String tableName
, String columnName) {
boolean result = false ;
Cursor cursor = null ;
try{
//查询一行
cursor = db.rawQuery( "SELECT * FROM " + tableName + " LIMIT 0", null );
result = cursor != null && cursor.getColumnIndex(columnName) != - ;
}catch (Exception e){
LogUtil.logErrorMessage("checkColumnExists1..." + e.getMessage());
}finally{
if(null != cursor && !cursor.isClosed()){
cursor.close() ;
}
} return result ;
} /**
* 方法2:检查表中某列是否存在
* @param db
* @param tableName 表名
* @param columnName 列名
* @return
*/
private static boolean checkColumnExists2(SQLiteDatabase db, String tableName, String columnName) {
boolean result = false ;
Cursor cursor = null ; try{
cursor = db.rawQuery( "select * from sqlite_master where name = ? and sql like ?"
, new String[]{tableName , "%" + columnName + "%"} );
result = null != cursor && cursor.moveToFirst() ;
}catch (Exception e){
LogUtil.logErrorMessage("checkColumnExists2..." + e.getMessage());
}finally{
if(null != cursor && !cursor.isClosed()){
cursor.close() ;
}
} return result ;
}
SQLite添加新的字段的更多相关文章
- EF中如何为表添加新的字段和映射
首先先了解一下ef生成的模型edmx的代码,传送门:http://www.cnblogs.com/yushengbo/p/4807715.html 一.添加新的字段 例子就用我现在项目的这个吧,首先在 ...
- ASP.NET Core 中文文档 第二章 指南(4.8)添加新的字段
原文 Adding a New Field 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).高嵩(Jack) 在这个章节你将使用 Entity Framework ...
- mssql sqlserver 给已存在表添加新的字段及字段备注的方法
转自:http://www.maomao365.com/?p=8102 摘要: 下文讲述向已存在表上添加新字段及字段备注的方法,如下所示: 实验环境:sql server 2008 R2 1. 添加新 ...
- 如何使用django操作数据库,向原有表中添加新的字段信息并建立一个多对多的关系?
(注:本人用的pycharm开发工具) 1.在你要添加新字段的app的 models.py 文件中添加需要新增的字段(book表新增authors字段并和author建立多对多关系,author表新增 ...
- Qt+QGIS二次开发:向shp矢量图层中添加新的字段
添加一个新的字段到shp文件中,并且从Excel里导入数据到该字段.原shp文件里的字段ID应该与Excel里的字段ID一一对应才能正确的导入.下图分别是shp的字段和Excel的字段 将class字 ...
- ELK系列(5) - Logstash怎么分割字符串并添加新的字段到Elasticsearch
问题 有时候我们想要在Logstash里对收集到的日志等信息进行分割,并且将分割后的字符作为新的字符来index到Elasticsearch里.假定需求如下: Logstash收集到的日志字段mess ...
- 八.Protobuf3更新消息类型(添加新的字段)
Protobuf3 更新消息类型 如果现有的消息类型不满足你的所有需求——例如,你希望消息格式有一个额外的字段——但是你仍然希望使用用旧格式创建的代码,别担心!在不破坏任何现有代码的情况下更新消息类型 ...
- SqlServer如何给表添加新的字段以及字段注释
语法: USE 数据库名ALTER TABLE 表名 ADD 字段名 类型 默认值 是否为空;EXEC sp_addextendedproperty N'MS_Description', N'注 ...
- js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素
JS定义了一个json数据var test={name:"name",age:"12"};需要给test再添加一个字段,需要什么办法,可以让test的值为{na ...
随机推荐
- springboot2.1.3使用mvn site遇到的坑及解决方案
本人要使用mvn site命令生成一些项目报告,如:***.html文件,但是在命令运行时,时常报如下错误: 一开始还以为是 jar包冲突引起的,把相关依赖引用的jackson-module-scal ...
- php框架路由美化后提示No input file specified
此问题出现在.htaccess上 Apache按如下代码修改即可: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond % ...
- MySQL/MariaDB数据库的触发器
MySQL/MariaDB数据库的触发器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器概述 1>.什么是触发器 触发器的执行不是由程序调用,也不是由手工启动,而是 ...
- 关于立即调用的函数表达式(IIFE)
在 JavaScript 中,圆括号 () 是一种运算符,跟在函数名之后,表示调用该函数.比如,print() 就表示调用 print 函数 有时,我们需要在定义函数之后,立即调用该函数,例如: fu ...
- Spring Cloud 微服务:Eureka+Zuul+Ribbon+Hystrix+SpringConfig实现流程图
相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...
- 微信小程序~设置tabBar后,wx.navigateTo不能跳转
当wx.navigateTo跳转链接跟app.json中设置的tabbar中跳转链接一样时,wx.navigateTo就不能跳转可以改为wx.switchTab 1.当app.json中设置了tabb ...
- Django API接口FK ManyTo Many 模板
Url from django.contrib import admin from django.urls import path, re_path from django.urls import i ...
- Tensorflow细节-P319-使用GPU基本的操作
如果什么都不加,直接运行装了GPU的Tensorflow,结果是这样子的 import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0], shape= ...
- python基础知识总结大全(转载)
- callbag js callback 标准-支持轻量级观测以及迭代
callbag 是一个js 的回调标准,方便开发支持观测以及迭代的代码 类似已经有好多的实现了 callbag-basics 比rxjs 以及xstream 还快 wonka 说明 基于标准的开发,对 ...