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.
SyntaxEdit
db.deleteObjectStore("toDoList");
Returns
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. |
ExampleEdit
In this example we open a database then, in the onupdateneeded
event handler, create a new object store using IDBDatabase.createObjectStore
. At the end of the block we then delete that object store again using deleteObjectStore()
.
// Let us open our database
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// This event handles the event whereby a new version of the database needs to be created
// Either one has not been created before, or a new version number has been submitted via the
// window.indexedDB.open line above
//it is only implemented in recent browsers
DBOpenRequest.onupgradeneeded = function(event) {
var db = event.target.result;
db.onerror = function(event) {
note.innerHTML += '<li>Error loading database.</li>';
};
// Create an objectStore for this database
var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
// define what data items the objectStore will contain
objectStore.createIndex("hours", "hours", { unique: false });
objectStore.createIndex("minutes", "minutes", { unique: false });
objectStore.createIndex("day", "day", { unique: false });
objectStore.createIndex("month", "month", { unique: false });
objectStore.createIndex("year", "year", { unique: false });
objectStore.createIndex("notified", "notified", { unique: false });
note.innerHTML += '<li>Object store created.</li>';
// Delete the object store again!
db.deleteObjectStore("toDoList");
};
ParametersEdit
- name
- The name of the data store to delete.
SpecificationEdit
Specification | Status | Comment |
---|---|---|
Indexed Database API The definition of 'deleteObjectStore()' in that specification. |
Editor's Draft |
Browser compatibilityEdit
See alsoEdit
- 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.)