gpt4 book ai didi

android - 插入或更新到 SQLite 但仅当其中一个值满足条件时才更新

转载 作者:行者123 更新时间:2023-11-29 01:54:32 25 4
gpt4 key购买 nike

<分区>

我想插入一条记录,除非它存在,然后如果它的 COLUMN_GENERATION 值小于现有记录的值,我想更新该记录。我不确定如何构建查询,或者使用什么命令,甚至。

我这样设置我的数据库:

public static final String TABLE_SEARCH = "SearchTable";
public static final String COLUMN_OWNER = "Owner";
public static final String COLUMN_SPOUSE = "Spouse";
public static final String COLUMN_CHILD = "Child";
public static final String COLUMN_GENERATION = "Generations";

private static final String DATABASE_NAME = "searches.db";
private static final int DATABASE_VERSION = 1;

// Database creation sql statement
private static final String DATABASE_CREATE = "CREATE TABLE "
+ TABLE_SEARCH + "("
+ COLUMN_OWNER + " INTEGER PRIMARY KEY, "
+ COLUMN_SPOUSE + " INTEGER DEFAULT 0, "
+ COLUMN_CHILD + " INTEGER DEFAULT 0, "
+ COLUMN_GENERATION
+ " INTEGER DEFAULT 0);";

这是我现在使用的查询,它只是忽略了冲突的条目:

values.put(SearchDatabaseHelper.COLUMN_OWNER, personID);
values.put(SearchDatabaseHelper.COLUMN_SPOUSE, spouseID);
values.put(SearchDatabaseHelper.COLUMN_CHILD, childID);
values.put(SearchDatabaseHelper.COLUMN_GENERATION, gens);
long insertID = database.insertWithOnConflict(SearchDatabaseHelper.TABLE_SEARCH, null, values, SQLiteDatabase.CONFLICT_IGNORE);

我试过先查询数据库,然后根据需要插入或更新,但这真的很慢,而且实际上没有用。我非常感谢这方面的帮助。

哇——作为重复问题关闭了。没有真正的答案。我担心我没有正确表述我的问题的标题,所以人们只是浏览了一下,没有阅读我的问题。

似乎没有人注意到第一段中的关键词:

“如果它的 COLUMN_GENERATION 值小于现有记录的值,我想更新该记录。”

我可以插入/更新数据库。潜在的问题是,“是否可以使用我的主键进行单个查询,以查看数据库中是否存在一行,如果不存在,则插入,如果存在,则仅在存储的情况下更新其中一列的值高于输入的数据?”

我真的希望能够在一次 SQLite 调用中完成这一切,因为 SQLite 比在 SQLite 之外进行比较和决策要快得多。

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