Copyright (C) 2000-2012 |
GNU Info (mysql.info)Getting unique IDHow Can I Get the Unique ID for the Last Inserted Row? ...................................................... If you insert a record in a table containing a column that has the `AUTO_INCREMENT' attribute, you can get the most recently generated ID by calling the `mysql_insert_id()' function. You can also retrieve the ID by using the `LAST_INSERT_ID()' function in a query string that you pass to `mysql_query()'. You can check if an `AUTO_INCREMENT' index is used by executing the following code. This also checks if the query was an `INSERT' with an `AUTO_INCREMENT' index: if (mysql_error(&mysql)[0] == 0 && mysql_num_fields(result) == 0 && mysql_insert_id(&mysql) != 0) { used_id = mysql_insert_id(&mysql); } The most recently generated ID is maintained in the server on a per-connection basis. It will not be changed by another client. It will not even be changed if you update another `AUTO_INCREMENT' column with a non-magic value (that is, a value that is not `NULL' and not `0'). If you want to use the ID that was generated for one table and insert it into a second table, you can use SQL statements like this: INSERT INTO foo (auto,text) VALUES(NULL,'text'); # generate ID by inserting NULL INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text'); # use ID in second table automatically generated by info2www version 1.2.2.9 |