我尝试使用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.
2条答案
按热度按时间7rtdyuoh1#
只是一个小错误,在SQLite中重命名列的语法是
错误是
RENAME
,应该是RENAME COLUMN
。7ivaypg92#
如果您支持Android版本10及以下,您可能会遇到很多崩溃,因为当时没有实现
RENAME COLUMN
。最安全的操作方法是将数据库复制到一个新的数据库中,然后重命名表。