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) != -1 ;
    }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 ;
}

原文地址:https://www.cnblogs.com/tianciliangen/p/9431109.html

时间: 2024-08-01 05:17:31

SQLite添加新的字段的相关文章

js 给json添加新的字段

JS定义了一个json数据var test={name:"name",age:"12"};需要给test再添加一个字段,需要什么办法,可以让test的值为{name:"name",age:"12",id:"123456"} var test={name:"name",age:"12"}; test.id = "12345";

将csv格式的数据文件导入/导出数据库+添加新的字段

最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题. 因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法: 一.简单,但是稍慢的方法,使用Navicat for MySQL,傻瓜式导入数据库: 流程如下: 安装完成并配置好连接后界面如下: 新建数据库 进入导入向导 选择导入类型: 然后选择文件作为数据源,这里是我之前抓好的包,300w+条抓包记录 这里直接采取默认设置 同样默认 自己设置了下表明,新建了表

ASP.NET MVC 5 - 给电影表和模型添加新字段

原文:ASP.NET MVC 5 - 给电影表和模型添加新字段 在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的.如果他们不是同步的,Entity Framework将抛出一个错误.这非常方便的在

MySql数据库在表中添加新字段,设置主键,设置外键,字段移动位置,以及修改数据库后如何进行部署和维护的总结

1,为当前已有的表添加新的字段 alter table student add studentName varchar(20) not null; 2,为当前已有的表中的字段设置为主键自增 alter table student add constraint PK_studentId primaryKey(studentId); 3,为当前已有的表中的字段设置为外键 alter table student add constraint FK_teacherId_studentInfo forei

Asp.Net MVC4入门指南(7):给电影表和模型添加新字段

在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的.如果他们不是同步的,Entity Framework将抛出一个错误.这非常方便的在开发时就可以发现错误,否则您可能会在运行时才发现这个问题. (由

Localdb数据库添加新字段 迁移过程

您将使用实体框架代码第一次迁移迁移到模型类的一些变化,所以该更改应用于数据库 1.在App-data文件夹中的Movies.mdf文件上点击鼠标右键并选择删除来删除电影数据库 2.从工具菜单上,单击库程序包管理器,然后程序包管理器控制台. 在程序包管理器控制台窗口中 PM>提示输入 -ContextTypeName MvcMovie.Models.MovieDBContext 然后点击回车. MvcMovie是项目的名字 3.在新的迁移文件夹rationsMig中创建一个Configuratio

学习ASP.NET Core Razor 编程系列十——添加新字段

学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面 学习ASP.NET C

织梦如何添加新的内容模型及字段?

修改方法如下: 1.进织梦DedeCms后台后打开 核心 -> 频道模型 -> 内容模型管理. 这样就会看到织梦DedeCms集成的几个内容模板,比如商品.图片集.文章和软件之类的,然后点击你需要修改的频道模型名称.比如我现在需要在普通文章模型里面添加上价格这个字段,我就点击它.就会出现更改内容模型的页面,点击字段管理,点击添加新字段. 新加字段的调用方法: 内容页:{dede:field.***** /} 列表页:[field:***** /] {dede:list addfields=’m

dedecms 后台添加新字段

位置在 内容模型管理 > 更改内容模型:添加字段 添加后的字段代码: <field:body itemname="文章内容" autofield="0" notsend="0" type="htmltext" isnull="true" islist="1" default="" maxlength="" page="spli