IDBDatabase: deleteObjectStore() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

deleteObjectStore()IDBDatabase インターフェイスのメソッドで、対象のオブジェクトストアを参照するすべてのインデックスとともに、接続しているデータベースにある指定の名前のオブジェクトストアを削除します。

IDBDatabase.createObjectStore と同様に、このメソッドは versionchange トランザクション内で のみ 呼び出すことができます。

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

構文

js
deleteObjectStore(name)

引数

name

削除するオブジェクトストアの名前です。名前は大文字と小文字を区別します。

返値

なし (undefined)。

例外

InvalidStateError DOMException

このメソッドが versionchange トランザクションのコールバックとして呼び出されなかった場合に発生します。

TransactionInactiveError DOMException

存在しないソースデータベースに対してリクエストが行われた場合に発生します(例えば、データベースが削除された場合など)。

NotFoundError DOMException

存在しないオブジェクトストアを削除しようとしたとき投げられます。

js
const dbName = "sampleDB";
const dbVersion = 2;
const request = indexedDB.open(dbName, dbVersion);

request.onupgradeneeded = (event) => {
  const db = request.result;
  if (event.oldVersion < 1) {
    db.createObjectStore("store1");
  }

  if (event.oldVersion < 2) {
    db.deleteObjectStore("store1");
    db.createObjectStore("store2");
  }

  // version < 3, 4... について同様に
};

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser

関連情報