戻る

オブジェクトスキーマ(テーブル)削除
オブジェクトスキーマ(テーブル)削除

オブジェクトスキーマ(テーブル)を削除するサンプルです。
削除処理は履歴を残す必要があるため、バージョンを上げる(変更する)必要があります。

[サンプル]
copy
async function dropTable(dbName, version, tableID) 
{
	return new Promise((resolve, reject) => 
	{
		const request = indexedDB.open(dbName, version);
	
		request.onupgradeneeded = (event) => 
		{
			const db = event.target.result;
			db.deleteObjectStore(tableID);
			resolve(1);
		};
		request.onsuccess = (event) => 
		{
			const db = event.target.result;
			db.close();
			resolve(0);
		};
	
		request.onerror = (event) => 
		{
			reject(event.target.error);
		};
	});
}
dropTable("sampleDB", 2, "testTable")
	.then((result) => 
	{
		console.log(result);
	})
	.catch((error) => 
	{
		console.error("error:", error);
	});

const request = indexedDB.open(dbName, version);
オブジェクトスキーマを削除するためには
バージョンを更新したデータベースで反映させます。

request.onupgradeneeded = (event) =>
更新のイベント

const db = event.target.result;
データベースオブジェクトを準備します。

db.deleteObjectStore(tableID);
オブジェクトスキーマ(テーブル)IDをしていてdeleteObjectStoreメソッドを実行して
削除処理を実行します。

オブジェクトスキーマを削除する場合は履歴を残す必要があります。
このためonsuccessイベント内でオブジェクトスキーマの削除を実行しようとしても
下記のようにエラーが発生します。
[エラーメッセージ]
InvalidStateError:
Failed to execute 'deleteObjectStore' on 'IDBDatabase':
The database is not running a version change transaction.



戻る


著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。