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
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. |
Example
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"); };
Parameters
- name
- The name of the data store to delete.
Specification
Specification | Status | Comment |
---|---|---|
Indexed Database API The definition of 'deleteObjectStore()' in that specification. |
Editor's Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 23webkit 24 |
10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
Available in workers | (Yes) | 37.0 (37.0) | ? | (Yes) | ? |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Available in workers | (Yes) | 37.0 (37.0) | (Yes) | ? | (Yes) | ? |
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.)