SQL数据库多层嵌套 json转sql建表语句,SQL数据库里数组里对象数据怎么创建

1. uniapp sqlite 一个数组包含对象嵌套对象通过主外键方式插入数据库:

// 假设有一个对象数组,对象中包含嵌套对象
const objectsArray = [
  {
    parentObject: {
      id: 1,
      name: 'Parent 1',
      // 其他父对象属性
    },
    childObject: {
      id: 11,
      parentId: 1,
      name: 'Child 1 of Parent 1',
      // 其他子对象属性
    }
  },
  // 其他对象...
];
 
// 定义插入父对象和子对象的函数
function insertParentAndChild(db, parent, child) {
  // 插入父对象
  db.executeSql(`INSERT INTO parent_table (id, name) VALUES (?, ?);`, [parent.id, parent.name]).then(() => {
    // 插入子对象,引用父对象的ID
    db.executeSql(`INSERT INTO child_table (id, parentId, name) VALUES (?, ?, ?);`, [child.id, parent.id, child.name]).then(() => {
      console.log('Inserted successfully');
    }).catch(e => {
      console.error('Child insert error:', e);
    });
  }).catch(e => {
    console.error('Parent insert error:', e);
  });
}
 
// 使用uniapp的数据库API
const db = uni.openDatabase();
 
// 遍历数组并插入数据
objectsArray.forEach(obj => {
  insertParentAndChild(db, obj.parentObject, obj.childObject);
});

2. uniapp plus.sqlite一个数组包含对象嵌套对象通过主外键方式插入数据库

 

// 假设有一个数组arrayData,它包含对象,对象中又嵌套了对象
// 例如:
// arrayData = [
//   { id: 1, name: 'Tom', profile: { age: 25, city: 'New York' } },
//   { id: 2, name: 'Jerry', profile: { age: 30, city: 'Los Angeles' } }
// ];
 
// 使用uniapp plus.sqlite插入数组中的对象,对象包含嵌套对象,并且通过主外键关联
function insertData(db, arrayData) {
  db.transaction(function(tx) {
    // 创建主表和外键表
    tx.executeSql('CREATE TABLE IF NOT EXISTS main_table (id INTEGER PRIMARY KEY, name TEXT)');
    tx.executeSql('CREATE TABLE IF NOT EXISTS foreign_table (id INTEGER PRIMARY KEY, age INTEGER, city TEXT, main_id INTEGER, FOREIGN KEY(main_id) REFERENCES main_table(id))');
    
    // 循环插入数据
    arrayData.forEach(function(item) {
      // 插入主表数据
      tx.executeSql('INSERT INTO main_table (name) VALUES (?)', [item.name]);
      // 获取刚插入的主键ID
      tx.executeSql('SELECT last_insert_rowid() as lastId', [], function(tx, result) {
        var lastId = result.rows.item(0).lastId;
        // 插入外键表数据,并关联主键ID
        tx.executeSql('INSERT INTO foreign_table (age, city, main_id) VALUES (?, ?, ?)', [item.profile.age, item.profile.city, lastId]);
      });
    });
  });
}
 
// 使用示例
var db = plus.sqlite.openDatabase({name: 'mydb'});
insertData(db, arrayData);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/656830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue中的$nextTick和过渡与动画

一.vue中的$nextTick 简述与用法:这是一个生命周期钩子 1.语法:this.$nextTick(回调函数) 2.作用:在下一次DOM更新结束后执行其指定的回调 3.什么时候用:当修改数据后,要基于更新后的新dom进行某些操作时,…

精酿啤酒:品质与口感在不同消费人群中的差异与共性

在啤酒市场中,不同消费人群对品质与口感的喜好存在一定的差异。然而,Fendi club啤酒凭借其卓着的品质和与众不同的口感,在不同消费人群中都展现出一定的共性。 从性别差异来看,男性消费者通常更注重啤酒的品质和口感,而…

Llama 3 模型家族构建安全可信赖企业级AI应用之使用 Llama Guard 保护大模型对话 (八)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

机器学习(七) ----------聚类(K-means)

目录 1 核心思想 2 K-means算法 2.1 算法概述 2.2 算法步骤 2.3 数学原理 2.4 ‘肘’方法确定K值 2.4.1 原理 2.4.2 步骤 2.4.3 代码实现 2.5 聚类评估方法 2.5.1 SC轮廓系数(Silhouette Coefficient) 计算方法 解读 注意事项 2.5.2 Cal…

Windows UWP ContentDialog去掉阴影(全透明)的实现

一、前言 在WIndows开发中,使用UWP(Universal WIndows)项目开发过程中,使用ContentDialog 的过程中,我们可能并不满足现有的样式,这时就需要自定义样式。笔者在自定义样式过程中,遇到了一个难题…

数据库多表查询

多表查询: SELECT *FROM stu_table,class WHERE stu_table.c_idclass.c_id; 多表查询——内连接 查询两张表交集部分。 隐式内连接: #查询学生姓名,和班级名称,隐式调用 SELECT stu_table.s_name,class.c_name FROM stu_table…

php反序列化学习(1)

1、php面向对象基本概念 类的定义: 类是定义了一件事物的抽象特征,它将数据的形式以及这些数据上的操作封装住在一起。(对象是具有类类型的变量,是对类的实例) 构成: 成员变量(属性&#xf…

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

背景介绍 前面介绍过 有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。 因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务 RagFlow 的完整实现流程&…

上交提出TrustGAIN,提出6G网络中可信AIGC新模式!

月16日至18日,2024全球6G技术大会在南京召开。会上,全球移动通信标准制定组织3GPP(第三代合作伙伴计划)的3位联席主席分享了3GPP6G标准时间表: 2024年9月,启动6G业务需求研究; 2025年6月&…

FastReport 主子表关系

代码中只需要绑定主表的数据就可以,子表的数据会通过报表中的关连关系自动到数据库中带出。 using CloudSaaS.DB.Handler; using CloudSaaS.Model; using CloudSaaS.DAL; using FastReport; using FastReport.Web; using System; using System.Collections.Generic;…

Hotcoin Research | 市场洞察:2024年5月13日-5月19日

加密货币市场表现 目前,加密货币总市值为1.32万亿,BTC占比54.41%。 本周行情呈现震荡上行的态势,BTC在5月15日-16日,有一波大的拉升,周末为震荡行情。BTC现价为67125美元。 上涨的主要原因:美国4月CPI为3…

Oracle创建用户时提示ORA-65096:公用用户名或角色名无效

Oracle创建用户时提示“ORA-65096:公用用户名或角色名无效” 如下图所示: 解决方法:在新增用户名前面加上C##或者c##就可以解决无效问题,具体什么原因还不清楚,需要再研究一下。

JS 中怎么删除数组元素?有哪几种方法?

正文开始之前推荐一位宝藏博主免费分享的学习教程,学起来! 编号学习链接1Cesium: 保姆级教程+源码示例2openlayers: 保姆级教程+源码示例3Leaflet: 保姆级教程+源码示例4MapboxGL: 保姆级教程+源码示例splice() JavaScript中的splice()方法是一个内置的数组对象函数, 用于…

vr数字成果展在线展示突破用户传统认知

想要轻松搭建一个充满互动与创意的3D数字展厅吗?vr互动数字展厅搭建编辑器将是您的不二之选!华锐视点3D云展平台提供的vr互动数字展厅搭建编辑器将空间重建与互动制作完美结合,让您轻松实现3D空间的搭建与互动营销制作。 在vr互动数字展厅搭建编辑器的帮助下&#…

SpringBoot 返回值 i18n 自动处理

定义基础通用类 首先定义一波错误码:ResultCode Getter AllArgsConstructor public enum ResultCode {SUCCESS(200, "请求成功", "request.success"),Fail(400, "请求失败", "request.failed"),PASSWORD_NOT_MATCH(1000…

独家揭秘!Amazon、lazada、Shopee测评自养号,新手也能秒变高手!

近年来,随着国内卖家涌入跨境电商平台,市场竞争愈加激烈。为了迅速占领市场,测评变得至关重要。然而,真人测评供不应求,服务商账号质量不一,且存在高权重账号稀缺和黑卡下单风险。因此,许多大卖…

为什么选择CleanMyMac软件呢?推荐理由

你是否曾经遇到过这样的问题:电脑运行缓慢,存储空间不足,不知道如何清理垃圾文件?别担心,我们为你找到了解决方案——CleanMyMac软件。这款强大的工具可以帮助你轻松解决这些问题,让你的电脑焕然一新&#…

VirtualBox+Ubuntu22.10+Docker+ROS2

Docker 拉取ros2镜像 docker pull osrf/ros:foxy-desktop 运行 docker run -it --nameros2 -p 50022:22 osrf/ros:foxy-desktop 进入容器安装组件 apt-get update apt-get install vim apt-get install git apt-get install net-tools # 安装ssh apt-get install openssh…

【FPGA】正原子XC7A35T

25_实战篇:时钟IP核MMCM(第一讲:时钟资源讲解)_哔哩哔哩_bilibili 25时钟IP核MMCM 7系列的时钟资源 bufferG bufferR 下图可视为一个FPGA(官方手册) 4 MRCC,SRCC 全局时钟:MRCC P 差分时…

Java入门-“第九大数据类型“-字符串

字符串String **字符串(String)**是指多个字符连接起来组合成的字符序列,例如”中国”,“hello world”都为字符串。注意对比字符,字符只能存储一个字符使用单引号’中’,’国’。 字符串底层源码 字符串定义 创建String对象 St…