MySQL的LAST_INSERT_ID用法举例


环境:MySQL Sever 5.1 + MySQL命令行工具

首先看个例子(主键是自增长):

  1. mysql> insert into bankaccount(name,balance) values('123', 1000); 
  2. Query OK, 1 row affected (0.06 sec) 
  3.  
  4. mysql> insert into bankstatement(action, txdate, amt, toaccno, fromaccno) values 
  5. ('122', curdate(), 1000, 1, 2); 
  6. Query OK, 1 row affected (0.00 sec) 
  7.  
  8. mysql> select last_insert_id(); 
  9. +------------------+  
  10. | last_insert_id() | 
  11. +------------------+  
  12. |                7 | 
  13. +------------------+  
  14. 1 row in set (0.00 sec) 
  15.  
  16. mysql> select * from bankaccount; 
  17. +-------+------+---------+  
  18. | accno | name | balance | 
  19. +-------+------+---------+  
  20. |     1 | 张三 |     200 | 
  21. |     2 | 李四 |     900 | 
  22. |     3 | 123  |    1000 | 
  23. |     4 | 123  |    1000 | 
  24. +-------+------+---------+  
  25. rows in set (0.00 sec) 
  26.  
  27. mysql> select * from bankstatement; 
  28. +----+--------------+------------+------+---------+-----------+  
  29. | id | action       | txdate     | amt  | toaccno | fromaccno | 
  30. +----+--------------+------------+------+---------+-----------+  
  31. |  1 | 开户         | 2012-10-14 |  100 |    NULL |         1 | 
  32. |  2 | 开户         | 2012-10-14 | 1000 |    NULL |         2 | 
  33. |  3 | 查找账户信息 | 2012-10-14 |    0 |    NULL |         2 | 
  34. |  4 | 查找账户信息 | 2012-10-14 |    0 |    NULL |         1 | 
  35. |  5 | 转账         | 2012-10-14 |  100 |       1 |         2 | 
  36. |  6 | 122          | 2012-10-14 | 1000 |       1 |         2 | 
  37. |  7 | 122          | 2012-10-14 | 1000 |       1 |         2 | 
  38. +----+--------------+------------+------+---------+-----------+  
  39. rows in set (0.00 sec) 

总结:LAST_INSERT_ID()返回最后一个INSERT或UPDATE语句中AUTO_INCREMENT列的值。

相关内容