DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) mysql-insert-id

Info Catalog (mysql.info) mysql-init (mysql.info) c-api-functions (mysql.info) mysql-kill
 
 22.2.3.36 `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.
 
 See  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) mysql-init (mysql.info) c-api-functions (mysql.info) mysql-kill
automatically generated byinfo2html