IDBObjectStore: name property
=============================

 The **`name`** property of the `IDBObjectStore`
 interface indicates the name of this object store.

**Note:** This feature is available in Web Workers

Value
-----

 A string containing the object
 store's name.

### Exceptions

 There are a several exceptions that can occur when you attempt to change an object
 store's name.

`InvalidStateError` `DOMException`

 Thrown if either the object store has been deleted or the current transaction is not an
 upgrade transaction; you can only rename indexes during upgrade transactions; that is,
 when the mode is `versionchange`.


`TransactionInactiveError` `DOMException`

Thrown if the current transaction is not active.

`ConstraintError` `DOMException`

Thrown if an object store is already using the specified `name`.

Examples
--------

 In the following code snippet, we open a read/write transaction on our database and add
 some data to an object store using `add()`. After the object store has been
 created, we log `objectStore.name` to
 the console. For a full working example, see
 our To-do Notifications app
 (>view example live).


```js
// Let us open our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

DBOpenRequest.onsuccess = (event) => {
  note.innerHTML += "<li>Database initialized.</li>";

  // store the result of opening the database in the db variable.
  // This is used a lot below
  db = DBOpenRequest.result;

  // Run the addData() function to add the data to the database
  addData();
};

function addData() {
  // Create a new object ready to insert into the IDB
  const newItem = [
    {
      taskTitle: "Walk dog",
      hours: 19,
      minutes: 30,
      day: 24,
      month: "December",
      year: 2013,
      notified: "no",
    },
  ];

  // open a read/write db transaction, ready for adding the data
  const transaction = db.transaction(["toDoList"], "readwrite");

  // report on the success of the transaction completing, when everything is done
  transaction.oncomplete = (event) => {
    note.innerHTML += "<li>Transaction completed.</li>";
  };

  transaction.onerror = (event) => {
    note.innerHTML +=
      "<li>Transaction not opened due to error. Duplicate items not allowed.</li>";
  };

  // create an object store on the transaction
  const objectStore = transaction.objectStore("toDoList");
  console.log(objectStore.name);

  // Make a request to add our newItem object to the object store
  const objectStoreRequest = objectStore.add(newItem[0]);

  objectStoreRequest.onsuccess = (event) => {
    // report the success of our request
    note.innerHTML += "<li>Request successful.</li>";
  };
}
```

Specifications
--------------

| Specification |
| --- |
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-name① |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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 the example live).