Как удалить столбец из таблицы в базе данных комнаты? - PullRequest
0 голосов
/ 06 сентября 2018

Как мне удалить столбец из таблицы в базе данных android. Я уже пробовал все время сбрасывать и удалять не работает.

Этот код также не работает: -

static final Migration MIGRATION_3_4 = new Migration(3, 4) 

{
    @Override
    public void migrate(SupportSQLiteDatabase database) 
{

 database.execSQL("CREATE TABLE users_new (userid TEXT, username TEXT, last_update INTEGER, PRIMARY KEY(userid))");

// Copy the data

 database.execSQL("INSERT INTO users_new (userid, username, last_update) SELECT userid, username, last_update FROM users");

// Remove the old table
 database.execSQL("DROP TABLE users");

// Change the table name to the correct one

 database.execSQL("ALTER TABLE users_new RENAME TO users");

    }
};

1 Ответ

0 голосов
/ 05 октября 2018

Android ROOM основан на SQL Lite, который не позволяет удалять столбцы таблицы базы данных. Вместо этого вы должны:

  • создать временную таблицу без столбца, который вы пытаетесь удалить,
  • копировать все записи из старой таблицы в новую таблицу,
  • брось старый стол,
  • переименовать новую таблицу в то же имя, что и старая таблица

См. Связанный вопрос: Sqlite Dropping Column из таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...