我在react native SQLite中有一个表,其中有两列app_name,key
我想更新一个值,如果它存在的基础上app_name else插入新的数据我尝试了以下操作
db.transaction(function (tx) {
tx.executeSql(
'Insert or Ignore Into client_registration (app_name, key) values(?,?); UPDATE client_registration SET app_name=?, key=? where changes() = 0 and "app_name" = ?;',
['coin', 123],
(tx, results) => {
if (results.rowsAffected > 0) {
console.log('success')
);
} else console.log('Registration Failed');
},
);
});
我无法得到任何输出。
1条答案
按热度按时间a2mppw5e1#
SQLite通过
ON CONFLICT
子句支持UPSERT
:我假设对于
app_name
,在表中定义了一个唯一的约束。您必须检查您的android API级别使用的SQLite版本,因为
UPSERT
是在3.24.0版本中引入的如果不使用
UPSERT
,你将不得不按以下顺序执行两条语句: