oracle批量插入并且返回自增主键_mybatis批量插入并返回主键(序列)-oracle

需求:批量插入数据,并返回每条数据的主键(序列),因为这里是采用序列生成唯一的主键的,

其实oracle批量 插入操作有几种,网上百度都是有相关资源的。但是笔者现在的需求是,不仅批量插入数据后,并返回每条数据的主键,

网上查阅了一番始终没有找到,相应办法,倒是针对mysql貌似mybatsi是支持批量返回主键的,因为笔者没有测试,所有不敢妄下言论。

好了,说了这么多,直接进入正题:

1、参照网上的相关资源,如图所示

select SEQ_DIS_DRUG_PRESC_DETAIL.NEXTVAL as code from dualINSERT INTO DIS_DRUG_PRESC_DETAIL(

code,

antibac_purpose,

ref_price,

)

SELECT SEQ_DIS_DRUG_PRESC_DETAIL.NEXTVAL,t.*

FROM (select

#{item.antibacPurpose,jdbcType=VARCHAR},

#{item.skintObserver2,jdbcType=VARCHAR}

from dual) t

结果批量插入式成功了,单主键code打死都没有返回,如是一条条插入又要加锁

最后的解决方式:因为笔者这里是采用序列生成的主键,于是在插入数据的时候,先调用一下序列获取到序列值,再赋值给主键code,最后进行批量插入操作。

如图所示java dao:

/*** 获取明细表主键

*

*@return

*/String getEpDetailCode();

xml:

select SEQ_DIS_DRUG_PRESC_DETAIL.NEXTVAL as code from dual

最后问题终于解决的,若大家有好的方案欢迎指点E-mail dqcer@sina.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值