At 13:35 -0400 5/1/02, Morris Hirsch wrote: >The problem is not about your own thread doing several related updates, >but some other thread doing an INSERT just after you do, >and before you get a chance to SELECT LAST_INSERT_ID() > >If there is any chance of it (anything except a single user can do it) >you must ensure thread safety with either single-thread attribute, >or synchronize (this) on the block.
I'll repeat my response to Peter's message: Not true. LAST_INSERT_ID() guarantees that you get the AUTO_INCREMENT value generated on your own connection, regardless of what any other clients are doing. This assumes that you use <sql:transaction> (as per Shawn's message), to make sure that the query that generates the AUTO_INCREMENT value and the query that selects it are issued using the same connection. > >On Wed, 1 May 2002, Paul DuBois wrote: > >> At 12:56 -0400 5/1/02, Carole E. Mah wrote: >> >Does anyone know if the JSTL database tags (<sql>) provide any method for >> >retrieving the unique ID of the row that was inserted last (when you set >> >up you mySQL database table to AUTO_INCREMENT the unique id). >> > >> >This is how I do it using PHP, which provides the mysql_insert_id() >> >function for just this purpose: >> > >> > $query = "INSERT INTO foo (name, phone) VALUES ('Jane Doe','555-1212')"; >> > $LINK = mysql_pconnect ($DB_SERVER, $DB_LOGIN, $DB_PASSWORD); >> > $result = mysql_db_query ("$DB", $query); >> > $my_id = mysql_insert_id($LINK); >> > >> >Thanks! >> > >> >-carole >> >> Don't know of any such thing in JSTL, but you can issue this query >> to get the value from the server: >> > > SELECT LAST_INSERT_ID() -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>