程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql函數:Last_insert_id()語法講解

Mysql函數:Last_insert_id()語法講解

編輯:MySQL綜合教程


Mysql函數:Last_insert_id()語法講解   Mysql函數可以實現許多我們需要的功能,下面介紹的Mysql函數Last_insert_id()就是其中之一,希望對您學習Mysql函數能有所幫助。 自動返回最後一個INSERT或 UPDATE 查詢中 AUTO_INCREMENT列設置的第一個表發生的值。 1. mysql> SELECT LAST_INSERT_ID(); 2. -> 195   www.2cto.com   產生的ID 每次連接後保存在服務器中。這意味著函數向一個給定客戶端返回的值是該客戶端產生對影響AUTO_INCREMENT列的最新語句第一個AUTO_INCREMENT值的。這個值不能被其它客戶端影響,即它們產生它們自己的AUTO_INCREMENT值。這個行為保證了你能夠找回自己的 ID 而不用擔心受其它客戶端的影響力,而且不需要加鎖處理。   假如你使用一個非“magic”值來更新某一行的AUTO_INCREMENT 列,則LAST_INSERT_ID() 的值不會變化(換言之, 一個不是 NULL也不是 0的值)。 重點: 假如你使用一條INSERT語句插入多個行, LAST_INSERT_ID() 只返回插入的第一行數據時產生的值。其原因是這使依靠其它服務器復制同樣的 INSERT語句變得簡單。   www.2cto.com   例如: 1. mysql> USE test; 2. Database changed 3. mysql> CREATE TABLE t ( 4. -> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 5. -> name VARCHAR(10) NOT NULL 6. -> ); 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 VALUES 29. -> (NULL, 'Mary'), (NULL, 'Jane'), (NULL, 'Lisa'); 30. Query OK, 3 rows affected (0.00 sec) 31. Records: 3 Duplicates: 0 Warnings: 0 32. 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.   www.2cto.com   雖然第二個問詢將3 個新行插入 t, 對這些行的第一行產生的 ID 為 2, 這也是 LAST_INSERT_ID() 返回的值 假如使用 INSERT IGNORE而記錄被忽略,則AUTO_INCREMENT 計數器不會增量,而 LAST_INSERT_ID() 返回0, 這反映出沒有插入任何記錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved