戻る

オブジェクトスキーマ(テーブル)の主キーフィールド取得
主キーフィールドの一覧を取得する方法

指定したオブジェクトスキーマから主キー名の一覧を取得するサンプルです。

[サンプル]
copy
async function preparePrimaryKey(dbName, storeName) {
	return new Promise((resolve, reject) => {
		const request = indexedDB.open(dbName);
		request.onsuccess = function(event) {
			const db = event.target.result;
			const store = db.transaction(storeName).objectStore(storeName);
			resolve(store.keyPath);
			db.close();
		};
		request.onerror = function(event) {
			reject(event.target.error);
		};
	});
}
preparePrimaryKey("sampleDB", "tbl").then(keyPath => 
{
	if (Array.isArray(keyPath)) {
		console.log("compound primary key:", keyPath.join(", "));
	} else if (keyPath !== null) {
		console.log("single primary key:", keyPath);
	} else {
		console.log("primary key undefined(autoIncrement only)");
	}
}).catch(error => 
{
    console.error("error:", error);
});

async function preparePrimaryKey(dbName, tableID)
dbNameデータベースID
tableIDオブジェクトスキーマ(テーブル)ID

const request = indexedDB.open(dbName);
データベースをopenします。

request.onsuccess = function(event) {
データベースのopenが成功したイベント

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

const store = db.transaction(storeName).objectStore(storeName);
指定した現在のオブジェクトスキーマをオブジェクトとして取得します。

resolve(store.keyPath);
主キー名の結果を返します。

keyPath.join(", ")
主キー配列の内容を,(カンマ)で区切り、配列データを連結した結果で出力します。




戻る


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