IDBDatabase: deleteObjectStore() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

IDBDatabase 接口的 deleteObjectStore() 方法会销毁连接数据库中指定名称的对象存储以及引用它的所有索引。

IDBDatabase.createObjectStore 一样,此方法只能versionchange 事务中调用。

语法

js
deleteObjectStore(name)

参数

name

要删除的对象存储的名称。名称区分大小写。

返回值

无(undefined)。

异常

InvalidStateError DOMException

如果在 versionchange 事务回调之外调用该方法,则会抛出此异常。

TransactionInactiveError DOMException

如果对不存在的源数据库(例如,已被删除或移除)发出请求,则会抛出此异常。

NotFoundError DOMException

尝试删除不存在的对象存储时抛出。

示例

js
const dbName = "sampleDB";
const dbVersion = 2;
const request = indexedDB.open(dbName, dbVersion);

request.onupgradeneeded = (event) => {
  const db = request.result;
  if (event.oldVersion < 1) {
    db.createObjectStore("store1");
  }

  if (event.oldVersion < 2) {
    db.deleteObjectStore("store1");
    db.createObjectStore("store2");
  }

  // etc. for version < 3, 4…
};

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbdatabase-deleteobjectstore①

浏览器兼容性

另见