接口开发: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 ALL
    INTO 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:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值