mysql中SELECT LAST_INSERT_ID()和select @@identity as id 的区别:
在ibatis中想插入后返回插入列的主键值,在网上搜索资料,发现写法个不一样,有的写
<insert id="save" parameterClass="linkedType">
<![CDATA[
insert into linkedType(
name,
description
)values(
#name#,
#description#
)
]]>
<selectKey keyProperty="id" resultClass="int">
select @@identity as id
</selectKey>
</insert>有的<insert id="save" parameterClass="linkedType">
<![CDATA[
insert into linkedType(
name,
description
)values(
#name#,
#description#
)
]]>
<selectKey keyProperty="id" resultClass="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
我也试了,在我的测试环境下,每次都是结果都是一样的,小的想知道两个查询原理是什么。
另外ibatis中像上面的写法,插入,到返回,这个执行流程是怎样的。请高手指教。
在ibatis中想插入后返回插入列的主键值,在网上搜索资料,发现写法个不一样,有的写
<insert id="save" parameterClass="linkedType">
<![CDATA[
insert into linkedType(
name,
description
)values(
#name#,
#description#
)
]]>
<selectKey keyProperty="id" resultClass="int">
select @@identity as id
</selectKey>
</insert>有的<insert id="save" parameterClass="linkedType">
<![CDATA[
insert into linkedType(
name,
description
)values(
#name#,
#description#
)
]]>
<selectKey keyProperty="id" resultClass="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
我也试了,在我的测试环境下,每次都是结果都是一样的,小的想知道两个查询原理是什么。
另外ibatis中像上面的写法,插入,到返回,这个执行流程是怎样的。请高手指教。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货