Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
7e22658c
D
Docs
项目概览
OpenHarmony
/
Docs
接近 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7e22658c
编写于
12月 29, 2022
作者:
L
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ConflictResolution
Signed-off-by:
N
lihuihui
<
lihuihui29@huawei.com
>
上级
40b64cbb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
166 addition
and
0 deletion
+166
-0
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
...cation-dev/reference/apis/js-apis-data-relationalStore.md
+166
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
浏览文件 @
7e22658c
...
...
@@ -374,6 +374,20 @@ promise.then(()=>{
| --------------------- | ---- | ------------------ |
| SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。 |
## ConflictResolution<sup>10+</sup>
插入和修改接口的冲突解决方式。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
| 名称 | 值 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ |
| ON_CONFLICT_ROLLBACK | 1 | 表示当冲突发生时,中止SQL语句并回滚当前事务。 |
| ON_CONFLICT_ABORT | 2 | 表示当冲突发生时,中止当前SQL语句,并撤销当前 SQL 语句所做的任何更改,但是由同一事务中先前的 SQL 语句引起的更改被保留并且事务保持活动状态。 |
| ON_CONFLICT_FAIL | 3 | 表示当冲突发生时,中止当前 SQL 语句。但它不会撤销失败的 SQL 语句的先前更改,也不会结束事务。 |
| ON_CONFLICT_IGNORE | 4 | 表示当冲突发生时,跳过包含违反约束的行并继续处理 SQL 语句的后续行。 |
| ON_CONFLICT_REPLACE | 5 | 表示当冲突发生时,在插入或更新当前行之前删除导致约束违例的预先存在的行,并且命令会继续正常执行。 |
## RdbPredicates<sup>9+</sup>
表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。
...
...
@@ -1251,6 +1265,41 @@ rdbStore.insert("EMPLOYEE", valueBucket, function (status, rowId) {
})
```
### insert<sup>10+</sup>
insert(table: string, values: ValuesBucket, conflict: ConflictResolution, callback: AsyncCallback
<
number
>
):void
向目标表中插入一行数据,使用callback异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------- | ---- | ---------------------------------------------------------- |
| table | string | 是 | 指定的目标表名。 |
| values |
[
ValuesBucket
](
#valuesbucket
)
| 是 | 表示要插入到表中的数据行。 |
| conflict |
[
ConflictResolution
](
#conflictResolution10
)
| 是 | 指定冲突解决方式。 |
| callback | AsyncCallback
<
number
>
| 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
**示例:**
```
js
const
valueBucket
=
{
"
NAME
"
:
"
Lisa
"
,
"
AGE
"
:
18
,
"
SALARY
"
:
100.5
,
"
CODES
"
:
new
Uint8Array
([
1
,
2
,
3
,
4
,
5
]),
}
rdbStore
.
insert
(
"
EMPLOYEE
"
,
valueBucket
,
data_rdb
.
ConflictResolution
.
ON_CONFLICT_REPLACE
,
function
(
status
,
rowId
)
{
if
(
status
)
{
console
.
log
(
"
Insert is failed
"
);
return
;
}
console
.
log
(
"
Insert is successful, rowId =
"
+
rowId
);
})
```
### insert<sup>9+</sup>
insert(table: string, values: ValuesBucket):Promise
<
number
>
...
...
@@ -1289,6 +1338,45 @@ promise.then((rowId) => {
})
```
### insert<sup>10+</sup>
insert(table: string, values: ValuesBucket, conflict: ConflictResolution):Promise
<
number
>
向目标表中插入一行数据,使用Promise异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------- | ---- | -------------------------- |
| table | string | 是 | 指定的目标表名。 |
| values |
[
ValuesBucket
](
#valuesbucket
)
| 是 | 表示要插入到表中的数据行。 |
| conflict |
[
ConflictResolution
](
#conflictResolution10
)
| 是 | 指定冲突解决方式。 |
**返回值**
:
| 类型 | 说明 |
| --------------------- | ------------------------------------------------- |
| Promise
<
number
>
| Promise对象。如果操作成功,返回行ID;否则返回-1。 |
**示例:**
```
js
const
valueBucket
=
{
"
NAME
"
:
"
Lisa
"
,
"
AGE
"
:
18
,
"
SALARY
"
:
100.5
,
"
CODES
"
:
new
Uint8Array
([
1
,
2
,
3
,
4
,
5
]),
}
let
promise
=
rdbStore
.
insert
(
"
EMPLOYEE
"
,
valueBucket
,
data_rdb
.
ConflictResolution
.
ON_CONFLICT_REPLACE
)
promise
.
then
((
rowId
)
=>
{
console
.
log
(
"
Insert is successful, rowId =
"
+
rowId
);
}).
catch
((
status
)
=>
{
console
.
log
(
"
Insert is failed
"
);
})
```
### batchInsert<sup>9+</sup>
batchInsert(table: string, values: Array
<
ValuesBucket
>
, callback: AsyncCallback
<
number
>
):void
...
...
@@ -1425,6 +1513,43 @@ rdbStore.update(valueBucket, predicates, function (err, ret) {
})
```
### update<sup>10+</sup>
update(values: ValuesBucket, predicates: RdbPredicates, conflict: ConflictResolution, callback: AsyncCallback
<
number
>
):void
根据RdbPredicates的指定实例对象更新数据库中的数据,使用callback异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| values |
[
ValuesBucket
](
#valuesbucket
)
| 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates |
[
RdbPredicates
](
#rdbpredicates9
)
| 是 | RdbPredicates的实例对象指定的更新条件。 |
| conflict |
[
ConflictResolution
](
#conflictResolution10
)
| 是 | 指定冲突解决方式。 |
| callback | AsyncCallback
<
number
>
| 是 | 指定的callback回调方法。返回受影响的行数。 |
**示例:**
```
js
const
valueBucket
=
{
"
NAME
"
:
"
Rose
"
,
"
AGE
"
:
22
,
"
SALARY
"
:
200.5
,
"
CODES
"
:
new
Uint8Array
([
1
,
2
,
3
,
4
,
5
]),
}
let
predicates
=
new
data_rdb
.
RdbPredicates
(
"
EMPLOYEE
"
)
predicates
.
equalTo
(
"
NAME
"
,
"
Lisa
"
)
rdbStore
.
update
(
valueBucket
,
predicates
,
data_rdb
.
ConflictResolution
.
ON_CONFLICT_REPLACE
,
function
(
err
,
ret
)
{
if
(
err
)
{
console
.
info
(
"
Updated failed, err:
"
+
err
)
return
}
console
.
log
(
"
Updated row count:
"
+
ret
)
})
```
### update<sup>9+</sup>
update(values: ValuesBucket, predicates: RdbPredicates):Promise
<
number
>
...
...
@@ -1465,6 +1590,47 @@ promise.then(async (ret) => {
})
```
### update<sup>10+</sup>
update(values: ValuesBucket, predicates: RdbPredicates, conflict: ConflictResolution):Promise
<
number
>
根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| values |
[
ValuesBucket
](
#valuesbucket
)
| 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates |
[
RdbPredicates
](
#rdbpredicates9
)
| 是 | RdbPredicates的实例对象指定的更新条件。 |
| conflict |
[
ConflictResolution
](
#conflictResolution10
)
| 是 | 指定冲突解决方式。 |
**返回值**
:
| 类型 | 说明 |
| --------------------- | ----------------------------------------- |
| Promise
<
number
>
| 指定的Promise回调方法。返回受影响的行数。 |
**示例:**
```
js
const
valueBucket
=
{
"
NAME
"
:
"
Rose
"
,
"
AGE
"
:
22
,
"
SALARY
"
:
200.5
,
"
CODES
"
:
new
Uint8Array
([
1
,
2
,
3
,
4
,
5
]),
}
let
predicates
=
new
data_rdb
.
RdbPredicates
(
"
EMPLOYEE
"
)
predicates
.
equalTo
(
"
NAME
"
,
"
Lisa
"
)
let
promise
=
rdbStore
.
update
(
valueBucket
,
predicates
,
data_rdb
.
ConflictResolution
.
ON_CONFLICT_REPLACE
)
promise
.
then
(
async
(
ret
)
=>
{
console
.
log
(
"
Updated row count:
"
+
ret
)
}).
catch
((
err
)
=>
{
console
.
info
(
"
Updated failed, err:
"
+
err
)
})
```
### update<sup>9+</sup>
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback
<
number
>
):void
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录