0
我有一個INSERT語句進行如下的上的Oracle 11g數據庫上運行:MyBatis中的selectKey線程是否安全?
<insert id="insertSelective" parameterType="myObj">
<selectKey keyProperty="seq_id" order="AFTER" resultType="Long">
SELECT mySeq.currval FROM dual
</selectKey>
INSERT INTO myTable
<include refid="myValues"/>
</insert>
如果多個線程在不同的會話中運行,有可能是一個線程來獲得其他會話遞增序列值?
換句話說,MyBatis是否允許/阻止位於某個<insert>
標記中的INSERT INTO
和<selectKey>
語句之間的另一個INSERT INTO
語句?
還有一個類似的問題處理PostgreSQL here。但是,由於Oracle序列由所有會話共享,所以我不能相信數據庫會給我在當前會話中插入的最後一個值。
感謝您的解釋:) – yalpertem 2014-11-21 12:39:04