数据人与超自然意识 发表于 2024-7-24 09:43:31

接口开辟: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 ; https://i-blog.csdnimg.cn/direct/94417e783a4b46fe98a122c116131c0b.png
动态sql:
https://i-blog.csdnimg.cn/direct/3df9cbe61c5c4754942f70baeb4d7723.png


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 接口开辟:Orcal数据库的批量新增sql