Found that function right after I posted. Thanks, it should do exactly what I need.

Roger Baklund wrote:
* Scott Plumlee

I've got two separate tables, each with id fields that are
auto-increment.  The created fields below are timestamps.  The tables
are Innodb tables using transactions to process the statements.  This
will be an online registration process for our business, using PHP and
MySQL.  PHP is using session ids for tracking state.

table1
--------
id
first_name
last_name
created
etc.....

table2
---------
id
table1_id
created
etc....


I need to insert a row into table1, using a null value for the id so it generate an id automatically. Then I need to insert a row into table2, including the id from table 1 (table1.id needs to be inserted into table2.table1_id).

Any best practices to doing this?


Use the LAST_INSERT_ID() function:

INSERT INTO table1 SET first_name='roger',last_name='baklund';
INSERT INTO table2 SET table1_id=LAST_INSERT_ID(),etc='whatnot';

This function is connection specific, you will get the correct id even if
you have multiple simultaneous users.

<URL: http://www.mysql.com/doc/en/ANSI_diff_Transactions.html#IDX141 >
<URL: http://www.mysql.com/doc/en/Information_functions.html#IDX1428 >

--
Roger


--

Scott Plumlee
PGP Public key: http://plumlee.org/pgp/ D64C 47D9 B855 5829 D22A D390 F8E2 9B58 9CBF 1F8D


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to