为什么2个相同PK的插入成功了?如何更新重复密钥



我有一个应用程序,从我的理解使用SQLiteDatabase
我看到2次插入相同的数据(相同的PK)似乎没有失败。

Uri res = context.getContentResolver().insert(CONTENT_URI, values);
res = context.getContentResolver().insert(CONTENT_URI, values);  

所以当我输出res时,我看到:

content://application_id/my_table_name/10  
content://application_id/my_table_name/11 

这是否意味着该行被插入了2次,id为10 &11吗?

但是如果我插入具有相同id的2行,这怎么可能呢?
我如何验证正在发生什么?
我的实际问题:我有兴趣做重复的PK更新,并注意到这个

这是否意味着该行被插入了2次,id为10 &11吗?

大概。你必须和执行ContentProvider的人交谈并询问他们。

但是如果我插入具有相同id的2行,这怎么可能呢?

你必须与实现ContentProvider的人交谈并询问他们。地球上没有其他人能回答这个问题。众所周知,ContentProvider不受SQLite的支持,也没有主键的概念。或者,主键可能是_ID列,而不是ContentValues中的列。

我如何验证正在发生什么?

你必须与实现ContentProvider的人交谈并询问他们。只有他们知道他们在哪里以及如何存储数据。

根据我的理解,您想成为CONTENT_URI唯一的字段?您检查过字段是否唯一吗?

我认为id字段将被设置为自动递增。

如果您将CONTENT_URI字段设置为UNIQUE,则可以使用ON DUPLICATE KEY UPDATE

最新更新