IDBObjectStore: name プロパティ

IDBObjectStore インターフェイスの name プロパティは、このオブジェクトストアの名前を表します。

メモ: この機能はウェブワーカー内で利用可能です。

このオブジェクトストアの名前を表す文字列です。

例外

オブジェクトストアの名前を変更しようとすると、以下の例外が発生する可能性があります。

InvalidStateError DOMException

オブジェクトストアが削除済か、現在のトランザクションがアップグレードトランザクションでないとき投げられます。インデックスの名前の変更はアップグレードトランザクション (versionchange モード) でのみ可能です。

TransactionInactiveError DOMException

現在のトランザクションが実行中でないとき投げられます。

ConstraintError DOMException

オブジェクトストアで既に指定された name が使用中のとき投げられます。

以下のコード断片では、データベースの読み書きトランザクションを開き、add() を用いてデータをオブジェクトストアに追加します。オブジェクトストアの生成後、コンソールに objectStore.name を記録します。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)

js
// データベースを開く
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

DBOpenRequest.onsuccess = (event) => {
  note.innerHTML += "<li>データベースを初期化しました。</li>";

  // データベースを開いた結果を変数 db に格納する
  // これは後でよく使う
  db = DBOpenRequest.result;

  // addData() 関数を実行し、データをデータベースに追加する
  addData();
};

function addData() {
  // IDB に挿入できる新しいオブジェクトを生成する
  const newItem = [
    {
      taskTitle: "Walk dog",
      hours: 19,
      minutes: 30,
      day: 24,
      month: "December",
      year: 2013,
      notified: "no",
    },
  ];

  // 読み書きトランザクションを開き、データを追加する準備をする
  const transaction = db.transaction(["toDoList"], "readwrite");

  // すべて完了し、トランザクションが正常終了したら報告する
  transaction.oncomplete = (event) => {
    note.innerHTML += "<li>トランザクションが完了しました。</li>";
  };

  transaction.onerror = (event) => {
    note.innerHTML +=
      "<li>トランザクションはエラーのため開けませんでした。アイテムは重複させられません。</li>";
  };

  // トランザクション上でオブジェクトストアを生成する
  const objectStore = transaction.objectStore("toDoList");
  console.log(objectStore.name);

  // オブジェクトストアに newItem オブジェクトを追加する要求を行う
  const objectStoreRequest = objectStore.add(newItem[0]);

  objectStoreRequest.onsuccess = (event) => {
    // 要求の成功を報告する
    note.innerHTML += "<li>要求に成功しました。</li>";
  };
}

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser

関連情報