在项目中,我们有时会遇到插入记录时,不指定自增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
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。