成功连接后,还需要创建对象仓库,才能进一步检索数据库。对象数据库相当于关系数据库中的数据表。
在 indexedDB 数据库中,所有的操作都必须在一个事务内执行。事务分为三种:只读事务、读写事务、版本更新事务。
对于创建对象事务和索引的操作,只能在版本更新的事物内部内部进行。因为在 indexedDB API 中不允许数据库的数据仓库在同一版本发生变化,所以当创建或删除仓库时,必须使用新的版本号更新数据库的版本,以免重复修改数据库的数据库结构。
window.indexedDB =
window.indexedDB ||
window.webkitIndexedDB ||
window.mozIndexedDB ||
window.msIndexedDB;
window.IDBTransaction =
window.IDBTransaction ||
window.webkitIDBTransaction ||
window.msIDBTransaction;
window.IDBKeyRange =
window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
window.IDBCursor =
window.IDBCursor || window.webkitIDBCursor || window.msIDBCursor;
function updateVersion() {
var dbName = 'indexedDBTest';
// 数据库名
var dbVersion = 20220430; // 版本号
var idb;
var dbConnect = indexedDB.open(dbName, dbVersion);
dbConnect.onsuccess = function (e) {
idb = e.target.result;
console.log('数据库连接成功');
};
dbConnect.onerror = function (e) {
console.log('连接 indexedDB 数据库失败');
};
dbConnect.onupgradeneeded = function (e) {
idb = e.target.result;
var t = e.target.transaction;
var o = e.oldVersion;
var n = e.newVersion;
console.log('数据库版本已更新成功,旧版本号为' + o + '新版本号为' + n);
};
}