The deleteObjectStore()
method of the IDBDatabase
interface destroys the object store with the given name in the connected database, along with any indexes that reference it.
As with IDBDatabase.createObjectStore
, this method can be called only within a versionchange
transaction.
Note: This feature is available in Web Workers.
Syntax
dbInstance.deleteObjectStore(name);
Parameters
- name
- The name of the object store you want to delete.
Return value
Void.
Exceptions
This method may raise a DOMException
of one of the following types:
Exception | Description |
---|---|
InvalidStateError |
Occurs if the method was not called from a versionchange transaction callback. For older WebKit browsers, you must call |
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 bug 1176165.) |
NotFoundError |
You are trying to delete an object store that does not exist. Names are case sensitive. |
Example
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 | Status | Comment |
---|---|---|
Indexed Database API The definition of 'deleteObjectStore()' in that specification. |
Recommendation | |
Indexed Database API 2.0 The definition of 'deleteObjectStore()' in that specification. |
Editor's Draft |
Browser compatibility
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.)