IDBDatabase.deleteObjectStore()

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

JavaScript
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 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.
 

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().

js;highlight:[33]
// 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

License

© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/api/idbdatabase/deleteobjectstore

API Database deleteObjectStore IDBDatabase IndexedDB Method Reference storage Storage