[Zope] Returning incremented id from mysql query?

Alec Munro alec.munro@eoascientific.com
Thu, 15 Aug 2002 11:22:09 -0300


Hmm, just did some reading on last_insert_id, and it says that it works
on a per-connection basis.
How are Zope's connections handled? Is it simply one connection that
various SQL scripts can use when they need it? How about if a single SQL
method contained multiple statements? Will these statements all be fed
into the connection at once, or is there a possibility of another
statement from another file sneaking in between two of them.

-----Original Message-----
From: Ed Leafe [mailto:ed@leafe.com] 
Sent: August 14, 2002 8:46 PM
To: Alec Munro
Cc: zope@zope.org
Subject: Re: [Zope] Returning incremented id from mysql query?


On Wednesday, August 14, 2002, at 07:21  PM, Alec Munro wrote:

> I'm looking for a way to get the id generated when I insert data into 
> a table with an auto-incremented key? I've found vague references to 
> this, but assuming I do an insert from a python script, calling an SQL

> method like:
> container.SQL.insertSomething(name="bob")
> how would I get the id.
>
> Thanks very much, hope someone can help me with this.

	I have a python script that I call after inserting a new record;
it 
takes the name of the table as its parameter, named 'tcTable'. The 
script reads:

laRes = context.lastInsertID(tcTable=tcTable)
lastID = laRes[0][0]
return lastID

	'lastInsertID' is a Z SQL method that also takes the name of the

table as a parameter. Its code is:

select last_insert_id() from <dtml-var tcTable>

Note that this syntax is specific to MySQL; other databases have similar

calls to retrieve the last created ID.

      ___/
     /
    __/
   /
  ____/
  Ed Leafe
  http://leafe.com/
  http://foxcentral.net