gpt4 book ai didi

android - 使用 database.query(); 在 SQlite 和 Android 中插入或更新;

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

有没有办法改变我的功能:

public categorie createCategoria(String categoria) {
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_NOME, categoria);
values.put(MySQLiteHelper.COLUMN_PREF, 0);

long insertId = database.insert(MySQLiteHelper.TABLE_CATEGORIE, null,
values);

Cursor cursor = database.query(MySQLiteHelper.TABLE_CATEGORIE,
allCategorieColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
categorie newCategoria = cursorToCategorie(cursor);
cursor.close();
return newCategoria;
}

这是一个原始插入,我想更改此函数以使其相应地更新或插入。我想更改此设置,因为我已经在某些地方使用了此功能,但现在我需要选择是插入行还是更新(或忽略插入)具有相同 COLUMN_NOME 的行。有人可以帮我做这个吗?

我的意思是,只有在没有同名的新行(如往常一样,您知道)时,我才想插入一个新行。

最佳答案

您可以使用 insertWithOnConflict()如果您想插入或更新,取决于记录是否存在:

SQLiteDatabase db = this.getWritableDatabase();

ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_ID, id);
contentValues.put(COLUMN_VALUE, value);

// this will insert if record is new, update otherwise
db.insertWithOnConflict(TABLE, null, contentValues, SQLiteDatabase.CONFLICT_REPLACE);

关于android - 使用 database.query(); 在 SQlite 和 Android 中插入或更新;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142908/

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