IDBDatabase.createObjectStore

IDBDatabase インターフェイスの createObjectStore() メソッドは、新しいオブジェクトストアやインデックスを生成して返します。

このメソッドは、ストアの名前をとるだけでなく、重要なオプションプロパティを定義するためのオプションオブジェクトもとります。ストアの個々のオブジェクトを一意にするために、プロパティを使用できます。 プロパティが識別子ならば、それはすべてのオブジェクトで一意であり、すべてのオブジェクトはそのプロパティを持つべきです。

WebKit ブラウザでは、オブジェクトストアやインデックスを生成できるようになる前に、IDBVersionChangeRequest.setVersion メソッドを呼び出さなければなりません。

構文

IDBDatabase.createObjectStore(name);
IDBDatabase.createObjectStore(name, options);

返値

IDBObjectStore

新しく生成されたオブジェクトストア。

例外

このメソッドは、次の型の 1 つを含む DOMError を伴う DOMException を発生させるかもしれません。

例外 説明
InvalidStateError このメソッドが versionchange トランザクションのコールバックとして呼び出されませんでした。WebKit ブラウザでは、はじめに を呼び出さなければなりません。既に削除されたか取り除かれたオブジェクトを要求した場合も発生します。
ConstraintError 与えられた名前のオブジェクトストア (大文字と小文字を区別する比較に基づく) が接続中のデータベースに既に存在します。
InvalidAccessError autoIncrementtrue に設定されていて、keyPath が空文字か空文字を含む配列の場合。`

js

// 我々のデータベースを開きましょう
var request = window.indexedDB.open("toDoList", 4);

// このイベントハンドラーは、新しいバージョンのデータベースの作成が必要なことを表すイベントを処理します。
// これは、データベースが作成されていないときや、上の行の window.indexedDB.open に
// 新しいバージョン番号が渡されたときです。
// これは、最近のブラウザーでしか実装されていません。
request.onupgradeneeded = function (event) {
  var db = event.target.result;

  db.onerror = function (event) {
    note.innerHTML += "<li>データベースの読み込みに失敗しました。</li>";
  };

  // データベースにオブジェクトストアを作成します。

  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });

  // オブジェクトストアにどのようなデータ項目が入るかを定義します。

  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>オブジェクトストアが作成されました。</li>";
};

引数

name

新しく作られるオブジェクトストア名。

optionalParameters

オプション。 メソッドのオプションパラメーターとなる属性を持つオプションオブジェクト。これは次のプロパティを持ちます。

プロパティ 説明
keyPath 新しいオブジェクトストアで使用されるキーパス。空や特定されていない場合、オブジェクトストアはキーパスなしで生成されて、アウトオブラインキー が使用されます。
autoIncrement true だった場合、オブジェクトストアはキージェネレーターを持ちます。既定値は false

未知のパラメーターは無視されます。

仕様書

Specification
Indexed Database API 3.0
# ref-for-dom-idbdatabase-createobjectstore①

ブラウザーの互換性

BCD tables only load in the browser

関連項目