Correct! and nicely done, I might add.
Thank you.
R
----- Original Message -----
From: "Michael Nascimento Santos" <[EMAIL PROTECTED]>
To: "Tag Libraries Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, July 22, 2003 2:54 PM
Subject: Re: MySQL LAST_INSERT_ID( )
> I guess you must be inside the same transaction to achieve what you want.
> Try to use <sql:transaction> to make both statements run inside the same
> transaction.
>
> []s
> Michael
>
> ----- Original Message -----
> From: "Rick Ross" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, July 22, 2003 6:54 PM
> Subject: MySQL LAST_INSERT_ID( )
>
>
> > I have a bad feeling about this, but I haven't been able to access the
> > LAST_INSERT_ID( ) from mySQL.
> >
> > In mySQL you can have one column that is automatically incremented
> (usually
> > the primary key field). You don't specify a value for this field in
your
> > INSERT statement or you specify NULL. Either way, an value is generated
> for
> > you and placed into the field. In mySQL, you can retrieve that value
from
> > the LAST_INSERT_ID( ) function. It would look something like this (from
> the
> > command line):
> >
> > mysql> INSERT mytable VALUES (null, 'This', 'That');
> > Query OK, 1 row affected (0.00 sec)
> > mysql> SELECT LAST_INSERT_ID() as lastID;
> > +--------+
> > | lastID |
> > +--------+
> > | 57 |
> > +--------+
> > 1 row in set (0.00 sec)
> >
> > So that is clearly quite handy. Now trying to do that in JSTL should be
> > fairly simple:
> >
> > <sql:update var="updateResult" >
> > INSERT myTable VALUES (null, ?,?)
> > <sql:param value="${param.name}" />
> > <sql:param value="${param.description}" />
> > </sql:update>
> >
> > <sql:query var="idResult">
> > SELECT LAST_INSERT_ID() as lastID
> > </sql:query>
> >
> > <c:set var="id" value="${idResult.rows[0].lastID}" />
> >
> > And now, 'id' should contain the results of the LAST_INSERT_ID( )
> function.
> > It doesn't. I always get a zero back. Despite the fact that the insert
> and
> > select's are both successful.
> >
> > Lets get a good look at the results of our query:
> >
> > <c:out value="ID = ${idResult}" /><br/>
> > <c:out value="ID.rows = ${idResult.rows}" /><br/>
> > <c:out value="ID.rows[0] = ${idResult.rows[0]}" /><br/>
> > <c:forEach var="row" items="${idresult.rows}" varStatus="status" >
> > <c:out value="row=${row} id=${row.lastID}" /><br/>
> > </c:forEach>
> >
> > returns this:
> >
> > ID = [EMAIL PROTECTED]
> > ID.rows = [Ljava.util.SortedMap;@330fb9
> > ID.rows[0] = {lastID=0}
> >
> > Notice that no rows were processed by the forEach despite the fact that
> row
> > 0 clearly exists and has a single column result in it.
> >
> > Does anybody know what's going wrong?
> >
> > Rick
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]