IDBDatabase.deleteObjectStore()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

deleteObjectStore() 方法从 IDBDatabase 中销毁指定名称的对象存储,及这个对象存储所包含的任何索引。

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

备注: 此特性在 Web Worker 中可用。

语法

dbInstance.deleteObjectStore(name);

参数

name

将要删除的对象存储的名字

异常

此方法可能会引发下列 DOMException 异常:

Exception Description
InvalidStateError Occurs if the method was not called from a versionchange transaction callback. For older WebKit browsers, you must call first.
TransactionInactiveError Occurs if a request is made on a source database that doesn't exist (e.g. has been deleted or removed.) In Firefox previous to version 41, an InvalidStateError was raised in this case as well, which was misleading; this has now been fixed (see Firefox bug 1176165.)
NotFoundError You are trying to delete an object store that does not exist. Names are case sensitive.

示例

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

request.onupgradeneeded = function (e) {
  var db = request.result;
  if (e.oldVersion < 1) {
    db.createObjectStore("store1");
  }

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

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

Specification

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

Browser compatibility

BCD tables only load in the browser

See also