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
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications (view example live.)