oracle 批量插入

本文介绍在Oracle数据库中使用序列和触发器进行高效批量数据插入的方法。通过创建序列和触发器,实现自动填充ID字段,简化了插入操作并提高了数据完整性。文章详细展示了SQL语句的编写过程。

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

第一种

insert  into userapplyRecord    (id,userid,type,applyId,createUser,createDate) 
    select S_USERAPPLYRECORD.NEXTVAL,2352,'moduleSetUp',applyid,'guishan',to_date('2019-04-09 10:18:16','yyyy-mm-dd hh24:mi:ss') from 
    (
      select 1 as applyid from dual
      union
      select 3 as applyid from dual
    )

 

第二种

   创建序列

        CREATE SEQUENCE S_USERAPPLYRECORD

         MINVALUE 1

        MAXVALUE 9999999999

         START WITH 1

          INCREMENT BY 1 CACHE 20;

为序列创建触发事件

   create or replace trigger userapplyRecord_insert  --触发器名字
  before insert on userapplyRecord --before 表示在数据库动作之前触发器执行,after:表示在数据库动作之后触发器执行 触发事件:指明哪些数据库动作会触发此触发器:insert delete update
  for each row  --对表的每一行触发器执行一次 如果没有这一选项,则只对整个表执行一次。
begin
  select S_USERAPPLYRECORD.NEXTVAL into :new.id from dual;
end;

执行批量插入sql语句

INSERT ALL       INTO    userapplyRecord    (id,userid,type,applyId,createUser,createDate) 
   VALUES    (S_USERAPPLYRECORD.NEXTVAL ,2352,'moduleSetUp',1,'guishan',to_date('2019-04-09 10:18:16','yyyy-mm-dd hh24:mi:ss'))  
   INTO    userapplyRecord    (id,userid,type,applyId,createUser,createDate) 
   VALUES    (S_USERAPPLYRECORD.NEXTVAL,2352,'moduleSetUp',1,'guishan',to_date('2019-04-09 10:18:16','yyyy-mm-dd hh24:mi:ss'))    
   
       SELECT 1 FROM DUAL; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值