Jetpack Room - Room 删除唯一索引约束
Room 删除唯一索引约束1、需求引入删除 deviceId 的唯一索引约束Entity(tableNameMember,indices{Index(nameidx_member_memberId_unique,value{memberId},uniquetrue),Index(nameidx_Member_deviceId_unique,value{deviceId},uniquetrue)})publicclassMember{PrimaryKey(autoGeneratetrue)publicLongid;ColumnInfo(namememberId)NonNullpublicStringmemberId;ColumnInfo(namememberName)NonNullpublicStringmemberName;ColumnInfo(namedeviceId)publicStringdeviceId;...}2、处理策略在 Member 中删除Index(name idx_Member_deviceId_unique, value {deviceId}, unique true)Entity(tableNameMember,indices{Index(nameidx_member_memberId_unique,value{memberId},uniquetrue)})publicclassMember{PrimaryKey(autoGeneratetrue)publicLongid;ColumnInfo(namememberId)NonNullpublicStringmemberId;ColumnInfo(namememberName)NonNullpublicStringmemberName;ColumnInfo(namedeviceId)publicStringdeviceId;...}升级数据库版本并添加迁移迁移操作为清空数据 删除索引privatestaticfinalMigrationMIGRATION_X_YnewMigration(X,Y){Overridepublicvoidmigrate(NonNullSupportSQLiteDatabasedatabase){database.execSQL(DELETE FROM Member);database.execSQL(DROP INDEX IF EXISTS idx_Member_deviceId_unique);}};