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;
--注(不创建触发事件,以下批量插入序列号不会自增)
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>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号