最近和Sobin在做一個精品課程的項目,因為用到一個固定的id作為表間關聯,所以在前一個表插入數據後要把插入數據生成的自增id傳遞給下一個表。研究了一番決定使用Mysql提供了一個LAST_INSERT_ID()的函數。 liehuo.net
LAST_INSERT_ID() (with no argument) returns the first automatically generated value that was set for an AUTO_INCREMENT column by the most recently executed INSERT or UPDATE statement to affect such a column. For example, after inserting a row that generates an AUTO_INCREMENT value, you can get the value like this: veryhuo.com
Copy to Clipboard引用的內容:[www.bkjia.com] mysql> SELECT LAST_INSERT_ID();簡單說來,就是這個函數將返回插入的那條記錄在表中自增的那個字段的值,一般我們都給那個自增字段命名為ID。這樣就可以返回剛插入的記錄的ID值了。 liehuo.net
一個簡單的例子: liehuo.net
Copy to Clipboard引用的內容:[www.bkjia.com] $query="INSERT INTO `testtable` (`clou1`,`clou2`) VALUES ('testvalue','test')";這個函數是基於connection的,也就是不會被其他客戶端的connection影響到,所以結果是准確的。如果使用select max(id) from table,在高密度的插入請求下,是有可能出問題的,返回錯誤值 liehuo.net