indexDB vue 创建数据库 创建表 添加对象数据

1 .open(dbName,1) 版本号可以省略

javascript 复制代码
 let dbName = 'hist-data-1d'
      const request = indexedDB.open(dbName); // 如果你不知道数据库的版本号,可以省略第二个参数,这样 indexedDB 会默认为你打开最新版本的数据库,因为版本号总是自增长的

2 第一次创建表 或数据库版本变化时创建表

javascript 复制代码
// 数据库版本变化时创建表
      request.onupgradeneeded = event => {
        for (let symbol of symbolList) { //  for (let symbol in symbolList) 循环打印出来的是 symbolList 中每个元素的索引
          symbol = symbol.replace('-', '_').toLowerCase();

          const db = event.target.result;
          db.createObjectStore(symbol);
        }
      };

3 指定表 添加数据 key value

javascript 复制代码
 request.onsuccess = event => {

    const db = event.target.result;
    const transaction = db.transaction([tablie], 'readwrite');
    const objectStore = transaction.objectStore(tablie);
    
    let key = 'key'
    const request = objectStore.add(data, key);
}

4 add 是累加数据 put 是只有一条数据

javascript 复制代码
const request = objectStore.add(data, key);

ps

ps1. 如果使用 add 方法添加的数据中 key 已经存在于对象仓库中,则会抛出 ConstraintError 错误

ps2 .需要更新已经存在的数据,你应该使用 put 方法而不是 add 方法

相关推荐
2401_867623981 小时前
解决Navicat多图纸模型工作区协同报错怎么办_外键关联与语法解析
jvm·数据库·python
时光足迹1 小时前
Tiptap 之自定义脚注组件
前端·javascript·react.js
时光足迹1 小时前
Tiptap之造字组件
前端·javascript·react.js
张元清1 小时前
React 表单处理:防抖校验、自动保存草稿与受控输入
前端·javascript·面试
sinat_383437361 小时前
如何为表名加上图标前缀_根据表前缀自动匹配图标
jvm·数据库·python
Lee川1 小时前
React 首页秒开优化:用 KeepAlive 实现丝滑的页面缓存
前端·react.js
SelectDB1 小时前
AI Agent 场景下,万级 JSON 字段的性能挑战与优化实践
数据库·人工智能·数据分析
毋语天1 小时前
从零开始:Docker 部署 Milvus 向量数据库并接入 Attu 与 pymilvus 的全流程指南
数据库·milvus
Hilaku1 小时前
给技术团队定规范,为什么 90% 最后都变成了走形式?
前端·javascript·程序员
wang3zc1 小时前
如何在 Go 中为权威 DNS 服务器实现持久化域名记录存储
jvm·数据库·python