Oracle中以insert values的形式同时插入多条记录

 

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

 

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


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

 

 

INSERT ALL INTO tb_red VALUES(1000, 8001, '2016-10-10 10:59:59', 1, 8001, '测试用户1000', '红名单0', '男', '膜法学院', '被测')
INTO tb_red  VALUES (1001, 8001, '2016-10-10 11:00:00', 2, 8001, '测试用户1001', '红名单1', '男', '膜法学院', '被测')
INTO tb_red  VALUES (1002, 8001, '2016-10-10 11:00:01', 0, 8001, '测试用户1002', '红名单2', '男', '膜法学院', '被测')
INTO tb_red  VALUES (1003, 8001, '2016-10-11 10:59:59', 1, 8001, '测试用户1003', '红名单3', '男', '膜法学院', '被测')
INTO tb_red  VALUES (1004, 8001, '2016-10-11 11:00:00', 2, 8001, '测试用户1004', '红名单4', '男', '膜法学院', '被测')
INTO tb_red  VALUES (1005, 8001, '2016-10-11 11:00:01', 0, 8001, '测试用户1005', '红名单5', '男', '膜法学院', '被测')
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以上版本

 

 

 

 

Oracle数据库中,可以使用INSERT语句向表中插入多条记录。通常有以下几种方式: 1. 单条INSERT语句插入单条记录: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` 2. 单条INSERT语句插入多条记录: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), ...; ``` 在这种方式中,可以在一个INSERT语句中包含多个值集合,每个值集合代表表中的一行数据。 3. 使用多个INSERT语句(不推荐,因为效率较低): ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ... ``` 4. 使用WITH语句结合UNION ALL进行批量插入(适用于Oracle 11g及以上版本): ```sql WITH data_to_insert AS ( SELECT 列1, 列2, ... FROM DUAL UNION ALL SELECT 列1, 列2, ... FROM DUAL ... ) INSERT INTO 表名 (列1, 列2, ...) SELECT 列1, 列2, ... FROM data_to_insert; ``` 在执行插入操作时,需要注意以下几点: - 列的顺序应与值的顺序相匹配,除非明确指定了列名。 - 如果表中设置了主键或唯一约束,插入的每条记录的这些字段值必须是唯一的。 - 如果表中有非空字段或设置了默认值,那么在插入记录时必须提供相应的值,否则需要提供允许NULL值的字段。 使用批量插入可以减少数据库的I/O操作次数,提高数据插入效率,尤其是在插入大量数据时。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值