オブジェクトスキーマ(テーブル)のインデックス追加 |
オブジェクトスキーマのレコードに高速で検索可能なキー(インデックス)の定義を追加 |
| uniqueの種類 | true | false |
| 重複の可否 | インデックスのキーの値が 一意であることを強制します。 既存の値と同じ同じーを持つレコードを 追加しようとするとエラーになります。 | インデックスのキーの値が 重複しても問題ありません。 |
| 目的 | distinctのように一意なキーのリストを取得したり 重複を許可しない制約を設けたい場合に使用します。 | order byのようにデータの並べ替えや 重複を含む検索を実行したい場合に 使用します。 |
| 用途 | 重複を許可しないデータを保存する インデックスに向いています。 | 重複する可能性のあるデータを格納する インデックスに向いています。 |
async function prepareCreateIndexTest(dbName, version, tableID)
{
return new Promise((resolve, reject) =>
{
const request = indexedDB.open(dbName, version);
let objectStore = null;
request.onerror = function(event)
{
console.error("it fail to open database:", event.target.error);
reject(event.target.error);
};
request.onupgradeneeded = function(event)
{
objectStore = request.transaction.objectStore(tableID);
objectStore.createIndex("f2_index", "f2", { unique: false });
objectStore.createIndex("f3_index", "f3", { unique: true });
resolve(1);
};
request.onsuccess = function(event)
{
const db = event.target.result;
db.close();
resolve(0);
};
});
}
prepareCreateIndexTest("sampleDB", 2, "t3")
.then((result) =>
{
console.log("result:", result);
})
.catch((error) =>
{
console.error("error:", error);
});
| f2_index / f3_index | 作成するインデックスの名前です。 |
| f2 / f3 | インデックスを作成するフィールド名です。 |
| { unique: true / false } | このインデックスに重複した値を許可するかどうかを指定します。 |
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |