oracle大量插入数据

本文介绍如何在 Oracle 数据库中使用触发器实现表的主键自动递增功能,并提供了一个具体的创建触发器和序列的例子。

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

创建一个序列

然后创建一个触发器,每次插入数据的时候,将主键自动加1

 create or replace trigger insert_tri  
 before insert on MS_BINSYU  for each row   
 declare   
 begin    
    select SEQ_BINSYU_ID.nextval into :new.binsyuid from dual;   
 end; 
 

binsyuid--主键
SEQ_BINSYU_ID--> 是序列

 

插入语句

Insert into MS_BINSYU (KIGYOID,SOKOCD,NINUSICD,BINSYUNM,UNSOUGYOSYACD,BINSYURKNM,YUSOSYUDAN,BINSYULBL,BINSYUCD_HJYO,CYOHYOPRTUSNJYN1,CYOHYOPRTUSNJYN2,CYOHYOPRTUSNJYN3,DATATOROKUMOTOKBN,TORIID,RTNTEISIFLG,SAKUJOFLG,SYOKAITOROKUDATE,SYOKAITOROKUUSRID,LASTKOSINDATE,LASTKOSINUSRID,EXCLCNT,TOROKUDATE,TOROKUUSR,TOROKUTRM,TOROKUPRGRM,KOSINDATE,KOSINUSR,KOSINTRM,KOSINPRGRM) values (1,'1','1','便種名称01','0001','略称01','01',3,'02',11,22,33,'0 ',null,'0','1',to_date('14-11-27','RR-MM-DD'),11111111,to_date('14-12-08','RR-MM-DD'),11111111,3,to_date('14-11-27','RR-MM-DD'),'11111111','0:0:0:0:0:0:0:1','WmsMaD035D01',to_date('14-12-08','RR-MM-DD'),'11111111','0:0:0:0:0:0:0:1','WmsMaD036D01');
 
就不必写主键了


 

 

 

Oracle中,大量插入数据时,可以采用以下优化方法: 1. 使用批量插入语句 使用批量插入语句可以大大提高插入数据的效率。在Oracle中,可以使用INSERT ALL语法或者使用INSERT INTO SELECT语法来实现批量插入。 示例: ``` -- 使用INSERT ALL语法 INSERT ALL INTO employees (employee_id, first_name, last_name) VALUES (1001, 'John', 'Doe') INTO employees (employee_id, first_name, last_name) VALUES (1002, 'Jane', 'Doe') INTO employees (employee_id, first_name, last_name) VALUES (1003, 'Bob', 'Smith') SELECT 1 FROM DUAL; -- 使用INSERT INTO SELECT语法 INSERT INTO employees (employee_id, first_name, last_name) SELECT 1001, 'John', 'Doe' FROM DUAL UNION ALL SELECT 1002, 'Jane', 'Doe' FROM DUAL UNION ALL SELECT 1003, 'Bob', 'Smith' FROM DUAL; ``` 2. 禁用日志记录 如果对数据的完整性和恢复性没有严格的要求,可以考虑禁用日志记录。在插入数据时,使用NOLOGGING选项可以减少写入日志的数量,提高插入数据的速度。需要注意的是,禁用日志记录可能会导致数据丢失或者不一致,需要谨慎使用。 示例: ``` INSERT /*+ APPEND NOLOGGING */ INTO employees (employee_id, first_name, last_name) VALUES (1001, 'John', 'Doe'); ``` 3. 使用并行插入Oracle中,可以使用并行插入来提高插入数据的速度。在执行插入语句时,使用PARALLEL选项可以让Oracle使用多个进程并行插入数据。需要注意的是,并行插入需要在数据库中配置好并行环境,否则可能会导致性能下降。 示例: ``` INSERT /*+ PARALLEL(employees, 4) */ INTO employees (employee_id, first_name, last_name) VALUES (1001, 'John', 'Doe'); ``` 以上是Oracle大量插入数据的几种优化方法,需要根据具体情况选择合适的方法来提高插入数据的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值