获取最近一次插入数据的自增长ID

mysql LAST_INSERT_ID详解

早过忘川 提交于 2019-11-27 14:55:04
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 而不用担心其它客户端的活动,而且不需要加锁或处理。(因为last_insert_id是针对connection的) 假如你使用一个非“magic”值来更新某一行的AUTO_INCREMENT 列,则LAST_INSERT_ID() 的值不会变化(换言之, 一个不是 NULL也不是 0的值)。 重点 : 假如你使用单INSERT语句插入多个行, LAST_INSERT_ID() 只 返回插入的 第一 行产生的值。其原因是这使依靠其它服务器复制同样的 INSERT语句变得简单。 例如: mysql> USE test; Database changed mysql> CREATE TABLE t ( -> id INT