(mysql.info.gz) mysql_insert_id
Info Catalog
(mysql.info.gz) mysql_init
(mysql.info.gz) C API functions
(mysql.info.gz) mysql_kill
22.2.3.33 `mysql_insert_id()'
.............................
`my_ulonglong mysql_insert_id(MYSQL *mysql)'
Description
...........
Returns the value generated for an `AUTO_INCREMENT' column by the
previous `INSERT' or `UPDATE' statement. Use this function after you
have performed an `INSERT' statement into a table that contains an
`AUTO_INCREMENT' field.
More precisely, `mysql_insert_id()' is updated under these conditions:
* `INSERT' statements that store a value into an `AUTO_INCREMENT'
column. This is true whether the value is automatically generated
by storing the special values `NULL' or `0' into the column, or is
an explicit non-special value.
* In the case of a multiple-row `INSERT' statement,
`mysql_insert_id()' returns the *first* automatically generated
`AUTO_INCREMENT' value; if no such value is generated, it returns
the last *last* explicit value inserted into the `AUTO_INCREMENT'
column.
* `INSERT' statements that generate an `AUTO_INCREMENT' value by
inserting `LAST_INSERT_ID(EXPR)' into any column.
* `INSERT' statements that generate an `AUTO_INCREMENT' value by
updating any column to `LAST_INSERT_ID(EXPR)'.
* The value of `mysql_insert_id()' is not affected by statements
such as `SELECT' that return a result set.
* If the previous statement returned an error, the value of
`mysql_insert_id()' is undefined.
Note that `mysql_insert_id()' returns `0' if the previous statement
does not use an `AUTO_INCREMENT' value. If you need to save the value
for later, be sure to call `mysql_insert_id()' immediately after the
statement that generates the value.
The value of `mysql_insert_id()' is affected only by statements issued
within the current client connection. It is not affected by statements
issued by other clients.
Information functions.
Also note that the value of the SQL `LAST_INSERT_ID()' function always
contains the most recently generated `AUTO_INCREMENT' value, and is not
reset between statements because the value of that function is
maintained in the server. Another difference is that
`LAST_INSERT_ID()' is not updated if you set an `AUTO_INCREMENT' column
to a specific non-special value.
The reason for the difference between `LAST_INSERT_ID()' and
`mysql_insert_id()' is that `LAST_INSERT_ID()' is made easy to use in
scripts while `mysql_insert_id()' tries to provide a little more exact
information of what happens to the `AUTO_INCREMENT' column.
Return Values
.............
Described in the preceding discussion.
Errors
......
None.
Info Catalog
(mysql.info.gz) mysql_init
(mysql.info.gz) C API functions
(mysql.info.gz) mysql_kill
automatically generated byinfo2html