oracle批量插入自增问题【转】

--1.创建序列
create sequence seq_paper_choice
      increment by 1    -- 每次递增1
      start with 1       -- 从1开始
      nomaxvalue      -- 没有最大值
      minvalue 1       -- 最小值=1
      NOCYCLE;      -- 不循环
      
--2.为序列创建触发事件
create or replace trigger style_insert
  before insert on
paper_choice (表名)
  for each row
begin
  select seq_paper_choice.nextval into :new.id from dual;
end;
--注(不创建触发事件,以下批量插入序列号不会自增)
 
--oracle 批量插入mybatis写法
<!--批量新增-->
<insert id="insertRandChoice" parameterType="java.util.List">
INSERT ALL
<foreach collection="list" item="item" index="index">
INTO paper_choice (id,content, aoption,boption,coption,doption, answer ,examid)
VALUES(seq_paper_choice.nextval,
#{item.content,jdbcType=VARCHAR},
#{item.aoption,jdbcType=VARCHAR},
#{item.boption,jdbcType=VARCHAR},
#{item.coption,jdbcType=VARCHAR},
#{item.doption,jdbcType=VARCHAR},
#{item.answer,jdbcType=VARCHAR},
#{item.examid,jdbcType=DECIMAL})
</foreach>
SELECT 1 FROM DUAL
</insert>
posted @ 2020-08-20 17:39  超神之巅  阅读(495)  评论(0编辑  收藏  举报