我有一个包含表Cities
的数据库,它有两列id
和is_default
声明为整数。我想更新所有城市,同时只有一个城市在is_default
列中设置了值1。我的数据库由ContentProvider
包裹,因此我想使用ContentResolver
。这是我的代码:
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.COLUMN_DEFAULT, "CASE WHEN " + DatabaseHelper.COLUMN_ID + " != " + id + " THEN 0 ELSE 1 END");
getContentResolver().update(BenefitsProvider.CITY_CONTENT_URI, contentValues, null, null);
id
是城市的ID,我想将其设为默认城市。问题是此查询根本不会更改is_default
列值。我确信ContentProvider
代码很好,并且可以与所有其他更新案例一起使用。
使用此方法,is_default
列值为1时,是否可以同时只有一个城市?还有其他方法可以达到这个目的吗?