ContentProvider中的条件更新

时间:2017-01-04 11:43:22

标签: android android-sqlite android-contentprovider android-contentresolver

我有一个包含表Cities的数据库,它有两列idis_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时,是否可以同时只有一个城市?还有其他方法可以达到这个目的吗?

0 个答案:

没有答案