# 删除数据

开发者可以通过delete()删除单个对象或者一组对象。删除数据时，云数据库会根据传入对象主键删除相应的数据，不会比对该对象其它属性与存储的数据是否一致。删除一组对象时，删除操作是原子性的，即对象列表中的对象要么全部删除成功，要么全部删除失败。

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

#### 约束与限制

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

#### 前提条件

已初始化数据库访问。

#### 删除数据

**代码示例：**

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

```
// 假设图书遗失，图书管理员需要将遗失的书籍从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}`);
  }
}
```