小编ntw*_*d33的帖子

使用自动增量主键迁移 Room 数据库

我有一个实体用户,它在保存到数据库时自动创建 UID。

我正在尝试迁移表,但用户的旧 UID 没有迁移,这是一个严重的问题。

如何保留旧的 UID?

 ContentValues cv = null;
            try {
                Cursor c = database.query("SELECT * FROM users");
                if (c.moveToFirst()) {
                    cv = new ContentValues();
                    do {
                        cv.put("uid", c.getLong(c.getColumnIndex("uid")));
                        cv.put("name", c.getString(c.getColumnIndex("name")));                       
                    } while (c.moveToNext());
                }
            } catch (Exception ex) {
                Logger.ex(TAG, ex);
            }

            database.execSQL("DROP TABLE IF EXISTS 'users'");
            database.execSQL("CREATE TABLE IF NOT EXISTS `users` (`uid` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
                    "`name` TEXT)");

            if (cv != null)
                database.insert("users", 0, cv);
Run Code Online (Sandbox Code Playgroud)

sql android migrate android-room

2
推荐指数
1
解决办法
1284
查看次数

标签 统计

android ×1

android-room ×1

migrate ×1

sql ×1