gpt4 book ai didi

android - 使用 insertWithOnConflict 进行更新或插入

转载 作者:IT王子 更新时间:2023-10-29 06:22:37 27 4
gpt4 key购买 nike

我需要插入或更新,我找到了 SQLiteDatabase 的 insertWithOnConflict 方法,但我不知道它如何检查该条目是否已存在。

理论上我需要一个“Where”参数来检查某个 ID 是否存在,如果存在,它应该替换所有其他列。

这是我现在拥有的,但我不认为第二个参数是唯一 id

    ContentValues args = new ContentValues();
args.put(AppDatabase.COLUMN_ID, entry.getId());
args.put(AppDatabase.COLUMN_NAME, entry.getAppname());
args.put(AppDatabase.COLUMN_URL, entry.getAppUrl());
database.insertWithOnConflict(AppDatabase.TABLE_FILELIST, COLUMN_ID, args, SQLiteDatabase.CONFLICT_REPLACE);

我该如何管理这种行为?

最佳答案

  1. 确保您的表中有一些适当的约束,例如 PRIMARY KEYUNIQUE

  2. 插入时,通过ContentValues给这个受约束的列添加一个值。如果插入新行会违反某些约束,则首先删除冲突行,然后插入新行。

在您的情况下,COLUMN_ID 看起来很适合 PRIMARY KEY 约束。代码中值为 COLUMN_ID 的第二个参数 nullColumnHack 不是必需的,您可以将其作为 null 传递。

关于android - 使用 insertWithOnConflict 进行更新或插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com