oracle同时插入多条记录

google了下,大家都说:  

insert into table1(id,name) select ... from table1 云云

 

不过我想插入的记录不需要从table2里面查询出来

就写成 insert into qx(part,mkbh,time) select '2','12',sysdate union select '2','13',sysdate;

问题又来了,没有from关键字,oracle不让执行 ...

后来灵光一闪

insert into qx(part,mkbh,time) 
select '2','12',sysdate from dual 
union  
select '2','13',sysdate from dual;

一试,果然成功

没错,就是dual表

 

 

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操作次数,提高数据插入效率,尤其是在插入大量数据时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值