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.
db.deleteObjectStore("toDoList");
Void.
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 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 bug 1176165.) |
NotFoundError | You are trying to delete an object store that does not exist. Names are case sensitive. |
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"); };
Specification | Status | Comment |
---|---|---|
Indexed Database API The definition of 'deleteObjectStore()' in that specification. | Recommendation |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 23webkit 24 | (Yes) | 10 moz 16.0 (16.0) | 10, partial | 15 | 7.1 |
Available in workers | (Yes) | ? | 37.0 (37.0) | ? | (Yes) | ? |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|---|
Basic support | 4.4 | (Yes) | (Yes) | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 | (Yes) |
Available in workers | (Yes) | (Yes) | ? | 37.0 (37.0) | (Yes) | ? | (Yes) | ? | (Yes) |
IDBDatabase
IDBTransaction
IDBKeyRange
IDBObjectStore
IDBCursor
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/deleteObjectStore