视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql函数:Last_insert_id()语法讲解_MySQL
2020-11-09 18:21:46 责编:小采
文档


bitsCN.com
Mysql函数:Last_insert_id()语法讲解 Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助。自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值。1. mysql> SELECT LAST_INSERT_ID();2. -> 195 产生的ID 每次连接后保存在服务器中。这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个AUTO_INCREMENT值的。这个值不能被其它客户端影响,即它们产生它们自己的AUTO_INCREMENT值。这个行为保证了你能够找回自己的 ID 而不用担心受其它客户端的影响力,而且不需要加锁处理。 假如你使用一个非“magic”值来更新某一行的AUTO_INCREMENT 列,则LAST_INSERT_ID() 的值不会变化(换言之, 一个不是 NULL也不是 0的值)。重点: 假如你使用一条INSERT语句插入多个行, LAST_INSERT_ID() 只返回插入的第一行数据时产生的值。其原因是这使依靠其它服务器复制同样的 INSERT语句变得简单。 例如:1. mysql> USE test;2. Database changed3. mysql> CREATE TABLE t (4. -> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,5. -> name VARCHAR(10) NOT NULL6. -> );7. Query OK, 0 rows affected (0.09 sec)8.9. mysql> INSERT INTO t VALUES (NULL, 'Bob');10. Query OK, 1 row affected (0.01 sec)11.12. mysql> SELECT * FROM t;13. +----+------+14. | id | name |15. +----+------+16. | 1 | Bob |17. +----+------+18. 1 row in set (0.01 sec)19.20. mysql> SELECT LAST_INSERT_ID();21. +------------------+22. | LAST_INSERT_ID() |23. +------------------+24. | 1 |25. +------------------+26. 1 row in set (0.00 sec)27.28. mysql> INSERT INTO t VALUES29. -> (NULL, 'Mary'), (NULL, 'Jane'), (NULL, 'Lisa');30. Query OK, 3 rows affected (0.00 sec)31. Records: 3 Duplicates: 0 Warnings: 032.33. mysql> SELECT * FROM t;34. +----+------+35. | id | name |36. +----+------+37. | 1 | Bob |38. | 2 | Mary |39. | 3 | Jane |40. | 4 | Lisa |41. +----+------+42. 4 rows in set (0.01 sec)43.44. mysql> SELECT LAST_INSERT_ID();//注意45. +------------------+46. | LAST_INSERT_ID() |47. +------------------+48. | 2 |49. +------------------+50. 1 row in set (0.00 sec)51. 虽然第二个问询将3 个新行插入 t, 对这些行的第一行产生的 ID 为 2, 这也是 LAST_INSERT_ID() 返回的值假如使用 INSERT IGNORE而记录被忽略,则AUTO_INCREMENT 计数器不会增量,而 LAST_INSERT_ID() 返回0, 这反映出没有插入任何记录。 bitsCN.com

下载本文
显示全文
专题