select-mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急

问题描述

mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急
<insert id="saveManyPopInfo" parameterType="java.util.List">
    insert into popinfo (popid,popname,remark)
    select seq_popid.nextval,p.* from (
    <foreach collection="list" item="pop" separator="union all">
        select #{pop.popname},#{pop.remark} from dual
    </foreach>
    ) p
</insert>
该代码可以实现批量新增的问题,但是我希望用的是union all的方法,即:
<insert id="saveManyPopInfo" parameterType="java.util.List">
           <!--这里的selectKey 感觉只是执行了一次,因为会报一个叫插入重复的错误-->
    <selectKey keyProperty="p1" order="BEFORE" resultType="int">
        select seq_popid.nextval from dual
    </selectKey>
    insert into popinfo (popid,popname,remark)
    <foreach collection="list" item="pop" separator="union all">
        select #{p1},#{pop.popname},#{pop.remark} from dual
    </foreach>
</insert>
    怎么可以用union all来解决批量新增的问题?

解决方案

<!--这里的selectKey 感觉只是执行了一次,因为会报一个叫插入重复的错误-->

select seq_popid.nextval from dual

insert into popinfo (popid,popname,remark)

select #{p1},#{pop.popname},#{pop.remark} from dual

怎么可以用union all来解决批量新增的问题?

解决方案二:

union all? 它不是用来合并数据的吗?基本用来查询。。。没听说过可以用来插入啊

解决方案三:

批量插入么? 我写过一篇博客,关于ibatis批量插入,你看看吧http://blog.csdn.net/moneyshi/article/details/22807239

解决方案四:

第一个插入不就是union all吗

解决方案五:

separator="union all"已经是union all了啊

时间: 2024-10-31 08:25:56

select-mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急的相关文章

ztree-页面中多个input select,想要每个inpu中显示不同内容,该怎么做?

问题描述 页面中多个input select,想要每个inpu中显示不同内容,该怎么做? 使用Jquery Ztree 页面中多个input select,想要每个inpu中显示不同内容,该怎么做? <!DOCTYPE html><HTML><HEAD> <TITLE> ZTREE DEMO - radio select menu</TITLE> <meta http-equiv=""content-type"

数据库表中日期记录为2009-04-23的形式,如何用sql语句查询2009年4月份的所有记录,请帮帮我!!谢谢!!

问题描述 数据库表中日期记录为2009-04-23的形式,如何用sql语句查询2009年4月份的所有记录,请帮帮我!!谢谢!! 解决方案 解决方案二:补充一句我需要HQL语句解决方案三:fromClasswheredatebetweendate'2009-04-01'anddate'2009-04-30'解决方案四:引用2楼endlesspass的回复: fromClasswheredatebetweendate'2009-04-01'anddate'2009-04-30' 就只有这一种思路了吗

MyBatis魔法堂:Insert操作详解(返回主键、批量插入)

一.前言      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅.   二. insert元素 属性详解   其属性如下:    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置    keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元

ibatis的insert中使用序列

  Oracle中创建序列 create sequence MYDB_SEQUENCEincrement by 1 start with 1 nomaxvalue minvalue 1;   xml写法 <insert id="insert" parameterClass="Student">  <selectKey resultClass="String" keyProperty="mid">   S

php中实现用数组妩媚地生成要执行的sql语句_php实例

会不会碰到这样一种情况呢?每次获取数据将数据和历史版本都有一定的差别,然而用ThinkPHP的addAll()函数,却会将已有的数据删掉再重新写入.这明显不是我们想要的.但自己写sql每次几十个字段也是醉了.如何优雅而又轻松地实现sql的自动生成呢?于是有了下面这个方法. /** * [array_to_sql 根据数组key和value拼接成需要的sql] * @param [type] $array [key, value结构数组] * @param string $type [sql类型i

在查询结果中添加一列表示记录的行数的sql语句_MsSql

复制代码 代码如下: DECLARE @table TABLE ([Values] varchar(10))     Insert INTO @table Select 'AAA'    UNION ALL Select 'CCC'    UNION ALL Select 'EEE'    UNION ALL Select 'DDD'    UNION ALL Select 'BBB'    Select [RowID] = IDENTITY (int, 1, 1), * INTO # FROM

在查询结果中添加一列表示记录的行数的sql语句

复制代码 代码如下: DECLARE @table TABLE ([Values] varchar(10))     Insert INTO @table Select 'AAA'    UNION ALL Select 'CCC'    UNION ALL Select 'EEE'    UNION ALL Select 'DDD'    UNION ALL Select 'BBB'    Select [RowID] = IDENTITY (int, 1, 1), * INTO # FROM

跟踪oracle中sql语句执行过程及相关知识拓展

select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00';         这个方法查询结果每条记录显示一条查询语句,且只能查询sql_text小于1000字符的,多余的会被截断.         改进一下: select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00' and sql_text

如何解决Oracle分页查询中排序与效率问题

本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题. 原始未分页查询Sql代码如下: select ROWNUM rn, t.id ID, o.name YYB,u.name XM, t.MC from tZDYSX t,tuser u,lborganization o where t.cjr=u.id and u.orgid=o.orgcode and t.gx = 1 order by ID 结果如下: RN  I