当前位置:首页 » Mysql技术教程

mysql mysql_insert_id

2011-03-30 10:50 本站整理 浏览(19)

1、

摘自:http://www.111cn.net/database/110/LAST_INSERT_ID-mysql_insert_id.htm

LAST_INSERT_ID() mysql_insert_id 获取insert数据的主键值自动编号

我们讲了关于mysql LAST_INSERT_ID() mysql_insert_id 获取insert数据的主键值自动编号那么来分析一下它们的区别吧

mysql_insert_id ()是直接获取当前session的insert_id,而LAST_INSERT_ID()是SQL函数,需要通过执行SQL来获得,如:SELECT LAST_INSERT_ID();显然这两个效果是一样的,但执行一次SQL要耗费很多资源,不如直接通过mysql_insert_id()获得内存中的值快得多

2、摘自:http://www.zxlm.cn/fh/thread-7206-1-1.html

LAST_INSERT_ID() LAST_INSERT_ID(expr)

自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值。

mysql> SELECT LAST_INSERT_ID();

-> 195

产生的ID 每次连接后保存在服务器中。这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个AUTO_INCREMENT值的。这个值不能被其它客户端影响,即它们产生它们自己的AUTO_INCREMENT值。这个行为保证了你能够找回自己的 ID 而不用担心受其它客户端的影响力,而且不需要加锁处理。

假如你使用一个非“magic”值来更新某一行的AUTO_INCREMENT 列,则LAST_INSERT_ID() 的值不会变化(换言之, 一个不是 NULL也不是 0的值)。