小墨の博客

梦想需要付诸行动,否则只能是梦

MySQL insert插入记录后,获取刚插入行的id( SELECT LAST_INSERT_ID() )

在项目中,我们有时会遇到插入记录时,不指定自增id,然后插入后,需要拿到id的情况。

可以通过以下SQL进行查询(需要注意的是要跟insert语句一起执行,先后分两次查询查的结果为0)

SELECT LAST_INSERT_ID()


PHP项目中

方法1

使用函数 mysql_insert_id 取得上一步 INSERT 操作产生的 ID 

int mysql_insert_id ( [resource link_identifier] )

函数需要与AUTO_INCREMENT 属性结合使用。


方法2

mysql内置函数 LAST_INSERT_ID() , 该函数总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。

$rs=mysql_query('SELECT LAST_INSERT_ID()');
var_dump(mysql_fetch_array($rs));


Java项目中(MyBatis)

<insert id="insert" parameterType="com.example.entity.User" useGeneratedKeys="true" keyProperty="id">
    <!-- SQL语句 -->
</insert>

useGeneratedKeys 是打开返回开关,keyProperty是返回的键的字段名称。

如果插入的是对象,MyBatis会将这个自增ID放在了我们传入的参数中,我们直接通过对象的 getId() 即可拿到

如果我们的参数不是对象,自增ID就会直接作为函数的返回值返回






张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:503
    • 页面总数:20
    • 分类总数:92
    • 标签总数:207
    • 评论总数:58
    • 浏览总数:211726

    | | |
    | |  Z-Blog PHP