MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

IDBDatabase.createObjectStore

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

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

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

構文

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

戻り値

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

例外

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

Exception Description
InvalidStateError このメソッドがversionchangeトランザクションのコールバックとして呼び出されなかった。WebKitブラウザでは、はじめに を呼び出さなければならない。既に削除されたか取り除かれたオブジェクトを要求した場合も発生する。
ConstraintError 与えられた名前のオブジェクトストア(based on case-sensitive comparison) が接続中のデータベースに既に存在する。
InvalidAccessError autoIncrementがtrueに設定されていて、keyPathが空文字か空文字を含む配列の場合。
 

 // Let us open our database
  var request = 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
  request.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>';
  };

パラメーター

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

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

Attribute Description
keyPath 新しいオブジェクトストアで使用されるkey path。空や特定されていない場合、オブジェクトストアはKey Pathなしで生成されて、out-of-line keysが使用される。
autoIncrement trueだった場合、オブジェクトストアはkey generatorを持つ。既定値はfalse。

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

仕様

Specification Status Comment
Indexed Database API
The definition of 'createObjectStore()' in that specification.
勧告候補  

ブラウザ実装状況

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 23webkit
24
10 moz
16.0 (16.0)
10, partial 15 7.1
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 未サポート

関連項目

 

ドキュメントのタグと貢献者

 このページの貢献者: fscholz, YuichiNukiyama
 最終更新者: YuichiNukiyama,