android 如何在执行文件室迁移时重命名列

qxgroojn  于 2023-04-28  发布在  Android
关注(0)|答案(2)|浏览(124)

我尝试使用room进行迁移并重命名列名。
以下是我目前为止的代码:

private val MIGRATION_FROM_3_TO_4 = {
    object : Migration(3, 4) {
        override fun migrate(database: SupportSQLiteDatabase) {
            database.execSQL("ALTER TABLE Contacts RENAME Name TO contact_name")
            database.execSQL("ALTER TABLE People RENAME Name TO person_name")
        }
    }
}

输出:

android.database.sqlite.SQLiteException: near "Name": syntax error (code 1): , while compiling: ALTER TABLE Contacts RENAME Name TO contact_name.
7rtdyuoh

7rtdyuoh1#

只是一个小错误,在SQLite中重命名列的语法是

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name

错误是RENAME,应该是RENAME COLUMN

7ivaypg9

7ivaypg92#

如果您支持Android版本10及以下,您可能会遇到很多崩溃,因为当时没有实现RENAME COLUMN
最安全的操作方法是将数据库复制到一个新的数据库中,然后重命名表。

相关问题