日期:2014-05-17  浏览次数:20713 次

Mysql如何返回批量插入后的ID?
JDBC版本:mysql-connector-java-5.1.18
当批量插入多条记录后,怎么把这些记录自动递增的ID返回?

只插入一条记录的时候,可以用pstmt.getGeneratedKeys();返回ID,但是批量插入就没有返回了。

为什么?怎样才能?

------解决方案--------------------
XML code

    <insert id="insert-stragegy" parameterClass="stragegy">
        insert into t_config(
                config_name
                config_desc
                ) 
        values (
                #name#,                #desc#
                )
        <selectKey resultClass="int" keyProperty="id">
            select @@IDENTITY as id 
        </selectKey>
    </insert>

------解决方案--------------------
如果你一条的时候都可以,那么你在insert的时候就不要用批量处理,用循环不就行了。每次取得每次的放起来。
------解决方案--------------------
探讨
引用:

用个存储过程返回最后一个ID就OK了


如果多人同时插入也可以吗?
具体怎样做?

------解决方案--------------------
个人觉得
1. 并发的话:至少也要并发达到500【单次500以上】吧。。。
2. 大数据量的话,至少也要达到3000及以上【非并发。可流控处理,1000-3000条数据flash一次。。不然容易引起IO问题】。。。