Thanks for your answer, Anthony.  Its not necessary to change the code for 
this since the id is already known if its being inserted anyway :) .  I 
just didn't expect that behavior.  

On Tuesday, August 6, 2013 11:34:07 PM UTC-5, Anthony wrote:
>
> The DAL does this to get the id for MySQL inserts:
>
> self.execute('select last_insert_id();')
>
> Unfortunately, the value of last_insert_id() is only updated when the id 
> is auto-generated, so it stores the last auto-generated id (which you 
> observed), not the last id.
>
> In order to get the last id (whether auto-generated or not), you need to 
> use the MySQL 
> mysql_insert_id()<http://dev.mysql.com/doc/refman/5.0/en/mysql-insert-id.html>C
>  API function. I'm not sure if this is available via the pymysql driver, 
> but the MySQLdb driver connection object does include a conn.insert_id() 
> method to access this function (see 
> http://mysql-python.sourceforge.net/MySQLdb.html#mysql-c-api-function-mapping).
>  
> Perhaps the DAL code can be changed to use that method when the MySQLdb 
> driver is being used. If you'd like, you can open a Google Code 
> issue<https://code.google.com/p/web2py/issues/list>about this (and reference 
> this thread).
>
> Anthony
>
> On Tuesday, August 6, 2013 11:41:03 PM UTC-4, Jim Gregory wrote:
>>
>> I'm porting a legacy table to a new table having a different schema. The 
>> old table had a field (order_number) that was unique and autoincrementing 
>> but not the primary key. I want to use those old values as the primary key 
>> in the new table.
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to