zoukankan      html  css  js  c++  java
  • 数据库升级,如何操作

    问题一:增加或删除表

    思路:

    1)   升级数据库版本号;

    2)   根据旧版本号更新数据库;

    例:将数据库升级为 DB_VERSION_3

    public class MyDatabaseHelper extends SQLiteOpenHelper {
        private static final String DATABASE_NAME = "nicole.db";
        private static final int DB_VERSION_2 = 1;
        private static final int DB_VERSION_3 = 2;
    
        public MyDatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DB_VERSION_3);
        }
        
        @Override
        public void onCreate(SQLiteDatabase database) {
            createTable(database);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
            switch (oldVersion) {
            case DB_VERSION_2:
                database.execSQL(xxxx);
            case DB_VERSION_3:
                dropTable();
            default:
    
            }
        }
    
        @Override
        public void onDowngrade(SQLiteDatabase database, int arg1, int arg2) {
            dropTable(database);
            createTable(database);
        }
    }

    问题二:更改表字段

    思路:

    1) 将TableC重命名为TableC_temp

           SQL语句可以这样写:ALERT TABLE TableC RENAME TO TableC_temp;

    2) 创建新的TableC表

    3) 将数据从TableC_temp中插入到TableC表中

           SQL语句可以这样写:INSERT INTO TableC (Col1, Col2, Col3) SELECT (Col1, Col2, Col3) FROM TableC_temp;                

                       
    经过这三步,TableC就完成了更新,同时,也保留了原来表中的数据。  

    注意:

    在onUpgrade()方法中,删除表时,注意使用事务处理,使得修改能立即反应到数据库文件中。

    SQL语句的好坏直接影响查询效率,

    Android使用SQLite,可参考教程 http://www.runoob.com/sqlite/sqlite-java.html

    本文参考: http://blog.csdn.net/xu_song/article/details/49658195

  • 相关阅读:
    单选多选样式写法
    深拷贝方法
    防抖和节流的实现
    yarn 常用指令
    前端性能监控
    全表 or 索引
    Order by
    DINSTINCT
    智力题
    概率问题
  • 原文地址:https://www.cnblogs.com/nicoleTeng/p/7771100.html
Copyright © 2011-2022 走看看