DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(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