删除数据
====

开发者可以通过[delete()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/cloudfoundation-clouddatabase#delete)删除单个对象或者一组对象。删除数据时，云数据库会根据传入对象主键删除相应的数据，不会比对该对象其它属性与存储的数据是否一致。删除一组对象时，删除操作是原子性的，即对象列表中的对象要么全部删除成功，要么全部删除失败。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/66/v3/2F4L0-IGTeWTErQJNoI37w/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073603Z&HW-CC-Expire=86400&HW-CC-Sign=711D3EA5D0F91D80EFBD487352746E14B2B067C4E0A409D04C855DD5683A0F28)

*   删除一组对象时，该组中的对象必须属于同一个对象类型，否则会导致删除失败。
    
*   调用删除数据方法，有两种返回方式，返回一个Promise对象或者在参数中传入一个callback对象返回，本文以Promise为例详细说明。
    

#### 约束与限制

支持Phone、Tablet设备。并且从5.1.0(18)版本开始，新增支持Wearable设备；从5.1.1(19)版本开始，新增支持TV设备；从6.1.0(23)版本开始，新增支持PC/2in1设备。

#### 前提条件

已[初始化数据库访问](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/cloudfoundation-database-initialize)。

#### 删除数据

**代码示例：**

将对象删除，如果删除成功，返回删除对象的个数；执行失败，抛出异常。

// 假设图书遗失，图书管理员需要将遗失的书籍从BookInfo表中删除
async delete() {
  try {
    let book = new BookInfo();
    book.id = 3;
    let deleteNum = await databaseZone.delete(book);
    hilog.info(0x0000, 'testTag', \`Succeeded in deleting data, result: ${JSON.stringify(deleteNum)}\`);
  } catch (err) {
    hilog.error(0x0000, 'testTag', \`Failed to delete data, code: ${err.code}, message: ${err.message}\`);
  }
}