接口开发:Orcal数据库的批量新增sql

场景:在日常的CURD中一定会用到批量新增。在我们的项目中,使用的数据库是Orcal,由于之前基本都是使用Mysql的,使用的sql语句也基本都是用mysql的。但是在这次的接口编写时用mysql的批量新增出了问题,刚开始我还以为是写的动态sql有问题,在后续的问题修改也主要是对动态sql修改,因此也浪费了大量的时间,在后续把sql搬到数据库运行一下后才发现是sql的问题,同时也了解到了mysql和orcal 也是有很多地方是不同的。

MySQL和Oracle在批量新增数据时存在一些不同点,主要体现在语法、性能、事务处理等方面。以下是一些关键区别:

1. 语法

MySQL

在MySQL中,可以使用INSERT INTO ... VALUES语句一次插入多行数据。示例如下:

INSERT INTO table_name (column1, column2, column3)
VALUES(value1, value2, value3),(value4, value5, value6),(value7, value8, value9);

Oracle

在Oracle中,批量插入通常使用INSERT ALL语句或使用多行的INSERT INTO ... SELECT语句。示例如下:

INSERT ALLINTO table_name (column1, column2, column3) VALUES (value1, value2, value3)INTO table_name (column1, column2, column3) VALUES (value4, value5, value6)INTO table_name (column1, column2, column3) VALUES (value7, value8, value9)
SELECT * FROM dual;

或者使用INSERT INTO ... SELECT语句:

INSERT INTO table_name (column1, column2, column3)
SELECT value1, value2, value3 FROM dual
UNION ALL
SELECT value4, value5, value6 FROM dual
UNION ALL
SELECT value7, value8, value9 FROM dual;

2. 性能

  • MySQL:批量插入多行数据时,MySQL的性能通常比逐行插入要高,因为它减少了客户端与服务器之间的通信次数。
  • Oracle:Oracle的批量插入性能也很高,尤其是在使用INSERT ALL语句时,因为它可以在一次操作中插入多行数据。

3. 事务处理

  • MySQL:MySQL支持事务处理,批量插入的数据可以在一个事务中提交,确保数据的一致性。
  • Oracle:Oracle也支持事务处理,并且提供了更强大的事务管理功能,允许更复杂的事务控制。

4. 特定功能

  • MySQL:MySQL提供了LOAD DATA INFILE命令,用于从文件中快速批量插入数据,这是一个非常高效的方法。
  • Oracle:Oracle提供了SQL*Loader和外部表(External Table)功能,用于从外部文件批量加载数据。这些工具在处理大规模数据插入时非常有用。

最后附上当时编写的sql代码和动态sql:

INSERT ALL
INTO PROD CONFIG GROUP(SERIAL NO,CONFIG GROUP ID,PRODUCT ID)
VALUES (12312',NULL,NULL)
INTO PROD CONFIG GROUP(SERIAL NO,CONFIG GROUP ID,PRODUCT ID)
VALUES ('1234',NULL,NULL)
SELECT I FROM DUAL ;

动态sql:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MySQL]02 存储引擎与索引,锁机制,SQL优化

Mysql存储引擎 可插拔式存储引擎 索引是在存储引擎底层上实现的 inno DB MySQL默认存储引擎: inno DB高可靠性和高性能的存储引擎 DML操作遵循ACID模型支持事务行级锁,提高并发访问性能支持外键 约束,保证数据完整性和可靠性 MySAM MySAM是MySQL的早期引擎 特点: 不支持事…

安装 VMware vSphere vCenter 8.0

安装 VMware vSphere vCenter 8.0 1、运行安装程序 2、语言选择中文 3、点下一步 4、接受许可协议,点下一步 5、填写部署vCenter服务的ESXI主机IP地址以及对应ESXI主机的账号密码,这里将vCenter服务部署在192.168.1.14这台ESXi主机上 6、接受证书警告 7…

自动化测试中如何应对网页弹窗的挑战!

在自动化测试中,网页弹窗的出现常常成为测试流程中的一个难点。无论是警告框、确认框、提示框,还是更复杂的模态对话框,都可能中断测试脚本的正常执行,导致测试结果的不确定性。本文将探讨几种有效的方法来应对网页弹窗的挑战&…

21k star 开源项目,让模糊图像秒变高清!

不知道大家有没有遇到这样的需求:电脑里有一些很久之前保存的好看的图片,但是因为分辨率不高,当做壁纸使用会变得模糊。或者是从网上下载的需要使用的图片,找不到更高清的版本导致使用效果不好。之前分享过基于 Real-ESRGAN 算法修…

Redis中的哨兵(Sentinel)

上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。 文章目录 一、引入哨兵机制 二、基本概念 三、主从复制的问题 四、哨…

php相关

php相关 ​ 借鉴了小迪安全以及各位大佬的博客,如果一切顺利,会不定期更新。 如果感觉不妥,可以私信删除。 默认有php基础。 文章目录 php相关1. php 缺陷函数1. 与2. MD53. intval()4. preg_match() 2. php特性1. php字符串解析特性2. 杂…

Cisco 路由重发布 —— 实现路由信息在不同路由域间的传递

一、技术背景 在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备&#…

【题解 Kruskal重构树 LCA】 星际导航

星际导航 分析: 这也是一个比较老的题目了 今天突然想学一下kruskal重构树,就做到了这个题。 首先我们要明白,为什么这道题的路径一定是在最小生成树里? 或许是我们惯有的经验:最小的最大或者最大的最小无非两种套路…

信号【Linux】

文章目录 信号处理方式(信号递达)前后台进程 终端按键产生信号kill系统调用接口向进程发信号阻塞信号sigset_tsigprocmasksigpending内核态与用户态:内核空间与用户空间内核如何实现信号的捕捉 1、信号就算没有产生,进程也必须识别…

【C++】C++类和对象详解(上)

目录 思维导图大纲: 思维方面: 1. 类的定义: 2. 类的特点: 3. this指针: 4. 类的默认成员函数 默认构造函数 1.构造函数 2.析构函数 3.拷贝构造函数 4. 赋值运算符重载 1. 运算符重载 5. 日期类实现&#…

【CPP】CPP的内存管理

目录 10 C/C内存管理10.1 内存分布10.2 C的动态内存管理10.3 C的内存管理10.4 new失败的检测10.5 operator new与operator delete函数10.5 new与malloc()的区别,delete与free()的区别10.6 定位new表达式 这里是oldking呐呐,感谢阅读口牙!先赞后看,养成习惯! 个人主页:oldking呐…

编程中的智慧四:设计模式总览

前面三篇我们通过从一些零散的例子,和简单应用来模糊的感受了下设计模式在编程中的智慧,从现在开始正式进入设计模式介绍,本篇将从设计模式的7大原则、设计模式的三大类型、与23种设计模式的进行总结,和描述具体意义。 设计模式体…

使用Diffusion Models进行街景视频生成

Diffusion Models专栏文章汇总:入门与实战 前言:街景图生成相当有挑战性,目前的文本到视频的方法仅限于生成有限范围的场景的短视频,文本到3D的方法可以生成单独的对象但不是整个城市。除此之外街景图对一致性的要求相当高&#x…

数据库基础与安装MYSQL数据库

一、数据库管理系统DBMS 数据库技术是计算机科学的核心技术之一,具有完备的理论基础。使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据 1.可以结构化存储大量的数据信息,方便用户进行有效的检索和访问 2.可以…

目前航空航天设备怎么减重设计

目前航空航天设备怎么减重设计 1.使用轻质高强度材料1.1复合材料1.2金属基复合材料1.3陶瓷基复合材料1.4功能梯度材料和蜂窝材料 2.结构优化设计2.1拓扑优化2.2仿生学设计 3.部件和系统轻量化3.1机载娱乐系统3.2航空线缆3.3激光焊接技术 4.发动机和推进系统的优化4.1轻量化发动…

python爬虫Selenium模块及测试案例详解

什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种driver(FirfoxDrive…

python gradio 的输出展示组件

HTML:展示HTML内容,适用于富文本或网页布局。JSON:以JSON格式展示数据,便于查看结构化数据。KeyValues:以键值对形式展示数据。Label:展示文本标签,适用于简单的文本输出。Markdown:…

JavaScript之WebAPIs-BOM

目录 BOM操作浏览器一、Window对象1.1 BOM(浏览器对象模型)1.2 定时器-延时函数1.3 js执行机制1.4 location对象1.5 navigator对象1.6 history对象 二、本地存储三、补充数组中的map方法数组中的join方法数组中的forEach方法(重点)数组中的filter方法(重…

Linux——Centos系统安装(动图演示)

一、创建虚拟机并做相应配置 打开VMware Workstation,选择创建新的虚拟机; 1、选择自定义选项:点击下一步 2、选择虚拟机硬件兼容性:直接下一步就行了;点击下一步 3、安装客户机操作系统:这里我们选择稍后安…

C++对象模型之绕过private权限修饰符

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、C对象模型二、演示1.类层次2.内存排列 总结 前言 咱们都知道C语言在创建类的时候data member(数据成员)和fuchtion member&#xf…