美文网首页
不删除原有数据的情况下更新数据库表

不删除原有数据的情况下更新数据库表

作者: 122604 | 来源:发表于2018-02-24 10:58 被阅读0次

动态添加列,可以避免更新数据库时删除表中数据;

/**
 * 给现有表中添加列
 *
 * @param db
 * @param tableName    表名
 * @param columnName   列名
 * @param columnType   列类型
 * @param defaultField 列默认值
 */
public synchronized void updateColumn(SQLiteDatabase db, String tableName,
                                      String columnName, String columnType,
                                      Object defaultField) {
    try {
        if (null != db) {
            //查询第一条记录
            Cursor c = db.rawQuery("SELECT * from " + tableName + " limit 1 ",
                    null);
            boolean flag = true;
            if (c != null) {
                //遍历检索是否已经存在该列
                for (int i = 0; i < c.getColumnCount(); i++) {
                    if (columnName.equalsIgnoreCase(c.getColumnName(i))) {
                        flag = false;
                        break;
                    }
                }
                if (flag) {
                    //插入列
                    String sql = "alter table " + tableName + " add " + columnName + " " 
                            + columnType + " default " + defaultField;
                    db.execSQL(sql);
                }
                c.close();
            }
        }
    } catch (Exception e) {
        Log.d("nan", "表列更新失败===" + columnName);
        e.printStackTrace();
    }
}    

在函数onUpgrade中调用:

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    updateColumn(sqLiteDatabase, "表名", "需要添加的列名", "需要添加的列的类型", "该列的默认值");
}

相关文章

  • sqlite3命令行操作db巩固

    创建数据库 查看数据库 创建表 插入数据 更新表 更新表 删除数据

  • 2019-07-9

    更新数据库 删除数据库 表操作 新增数据表 表选项:控制表的表现 方案一: 方案二: 查看数据表 修改数据库 删除...

  • Django清空所有数据或重置migrations同步

    Django重置migration 清空数据库 不需要原有的数据库数据 删除数据库所有的表 删除项目的migrat...

  • MySQL第一讲 基本操作

    创建数据库 删除数据库 在数据库中创建表 删除数据表 insert 插入字段 update 更改字段 注意,在更新...

  • 不删除原有数据的情况下更新数据库表

    动态添加列,可以避免更新数据库时删除表中数据; 在函数onUpgrade中调用:

  • kettle学习笔记(五)——kettle输出步骤

    一、概述 数据库表:• 表输出• 更新,删除,插入/更新• 批量加载(mysql,oracle)• 数据同步文件:...

  • SQLite 常用操作

    创建数据库 创建表 插入数据 查询数据 更新数据 删除数据

  • SQL入门经典

    豆瓣链接 1 数据库与表的建立,更新及删除 1.1 创建和删除数据库 1.2 创建、更改和删除表 1.3 主键与外...

  • iOS 基本SQLite语句

    建表命令(create table): 数据库插入命令(insert) 数据库更新命令(update) 数据库删除...

  • mysql常用sql

    删除数据库表 查询数据库变量 修改表注释 数据库查询结构 mysqldump 导出数据 插入数据存在则更新 统计数...

网友评论

      本文标题:不删除原有数据的情况下更新数据库表

      本文链接:https://www.haomeiwen.com/subject/ilfqxftx.html