Oracle中同时插入多条记录

本文介绍在Oracle数据库中如何使用INSERT ALL语句进行批量数据插入,对比MySQL的多值插入方式,提供适用于Oracle 9i及以上版本的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于要做测试数据插oracle数据库,想到了mysql的多个values的形式,但是sql报错。oracle并不支持这种一个insert into 多个values的方法

 

INSERT INTO users(name, age) VALUES('ccc', 333), ('aaa', 222), ('bbb', 111);


但是有另一种写法,做个简单记录,跟mysql中的一个insert多个values的形式差不多。

 

 


 
  1. INSERT ALL INTO tb_red VALUES(1000, 8001, '2016-10-10 10:59:59', 1, 8001, '测试用户1000', '红名单0', '男', '膜法学院', '被测')

  2. INTO tb_red VALUES (1001, 8001, '2016-10-10 11:00:00', 2, 8001, '测试用户1001', '红名单1', '男', '膜法学院', '被测')

  3. INTO tb_red VALUES (1002, 8001, '2016-10-10 11:00:01', 0, 8001, '测试用户1002', '红名单2', '男', '膜法学院', '被测')

  4. INTO tb_red VALUES (1003, 8001, '2016-10-11 10:59:59', 1, 8001, '测试用户1003', '红名单3', '男', '膜法学院', '被测')

  5. INTO tb_red VALUES (1004, 8001, '2016-10-11 11:00:00', 2, 8001, '测试用户1004', '红名单4', '男', '膜法学院', '被测')

  6. INTO tb_red VALUES (1005, 8001, '2016-10-11 11:00:01', 0, 8001, '测试用户1005', '红名单5', '男', '膜法学院', '被测')

  7. select 1 from dual;

 

结果:

 

说明:

1.第一句用的是insert all into 不是 insert into

2.最后跟的selecr 1 from dual语句中的dual表可以被替换为任何一个只要不是tb_red的表

3.和mysql的写法不一样,多个values之间不用逗号分隔,但是需要加into tablename的形式的语句在每个values前面

4.只适合于Oralce 9i以上版本

 

另外一种方法是:循环into语句,用分号;隔开,在sql首尾分别加上begin,end;。目的是为了减少数据库连接,选择一次提交大量sql。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值