此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

IDBDatabase.deleteObjectStore()

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

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

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

Browser compatibility

See also