[Freeswitch-users] dbh:query - insert id

William King william.king at quentustech.com
Sat May 25 22:30:22 MSD 2013


Unfortunately you may hit a problem with last_insert_id() because FS
uses connection pooling, and statement batches(at least for some select
statements). Someone could check the lua wrapper code to see how the dbh
handler code is implemented.

William King
Senior Engineer
Quentus Technologies, INC
1037 NE 65th St Suite 273
Seattle, WA 98115
Main:   (877) 211-9337
Office: (206) 388-4772
Cell:   (253) 686-5518
william.king at quentustech.com

On 05/25/2013 10:11 AM, François wrote:
> Thanks to Steven and William for mentioning the RETURNING clause. I
> checked it out and learned something cool about PostgreSQL, so to me
> there's no problem with one liners like that.
> 
> About MySQL's last_insert_id(), it is fine to use because it returns the
> last id for that particular connection/dbh handler, so you shouldn't
> need to worry about race as long as you use it with the same handler
> right after your insert.
> 
> For other DB where race could be an issue (ex: sqlite3), you could
> always wrap it in a transaction to be sure:
> 
> begin transaction;
> insert <stuff>;
> select last_insert_id();
> end transaction;
> 
> François.
> 
> On Sat, 2013-05-25 at 04:01 -0400, John M wrote:
>> Hi Daniel,
>>
>> Thanks for your description, it is much appreciated. :-)
>>
>> 5 word one liners from people too lazy to explain properly would
>> really be best if they didn't reply at all.
>>
>> Cheers, thanks again.
>>
>> -Jm
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Daniel Ivanov <sertys at gmail.com>
>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>> Sent: Sat, May 25, 2013 5:57 pm
>> Subject: Re: [Freeswitch-users] dbh:query - insert id
>>
>> It is true that the luasql driver is overly basic and poorly
>> documented . Unfortunately mysql doesn't support RETURNING clause like
>> pgsql and oracle. You should however try SELECT LAST_INSERT_ID();
>> right after the insert query. I cannot guarantee it works due to the
>> unknown nature(to me that is) of the luasql transaction handling, but
>> it should keep a transaction open for as long as a db handler lives.
>>
>> On May 25, 2013 7:03 AM, "John M" <j_mj at aol.com> wrote:
>>         Hi Seven Du,
>>         
>>         I'd really like to know if this is possible too, couldn't find
>>         it documented anywhere.
>>         
>>         Instead of being cryptic, if you know the answer won't you
>>         please help by explaining what the RETURNING clause is and how
>>         to use it?
>>         
>>         Does it somehow return mysql_insert_id()?
>>         
>>         How should we use it.
>>         
>>         You help is invaluable and is contributing to the freeswitch
>>         community.
>>         
>>         -Jm
>>         
>>         
>>         
>>         
>>         
>>         -----Original Message-----
>>         From: Seven Du <dujinfang at gmail.com>
>>         To: FreeSWITCH Users Help
>>         <freeswitch-users at lists.freeswitch.org>
>>         Sent: Sat, May 25, 2013 12:52 pm
>>         Subject: Re: [Freeswitch-users] dbh:query - insert id
>>         
>>         Maybe try the RETURNING clause ? 
>>         
>>         
>>         -- 
>>         Seven Du
>>         http://www.freeswitch.org.cn
>>         http://about.me/dujinfang
>>         http://www.dujinfang.com
>>         
>>         
>>         Sent with Sparrow
>>         
>>         
>>         On Saturday, May 25, 2013 at 8:14 AM, Lloyd Aloysius wrote:
>>         > Hello All
>>         > 
>>         > 
>>         > How to get the id value after insert a record a record using
>>         > dbh:query
>>         > 
>>         > 
>>         > table_a - columns.
>>         > 
>>         > 
>>         > id - auto increment
>>         > field1
>>         > field2
>>         > 
>>         > 
>>         > 
>>         > 
>>         > dbh:query("insert into table_a ( field1,field2) values
>>         > ('11','Test')")
>>         > 
>>         > 
>>         > 
>>         > 
>>         > After insert how to get the table_a - id value for the
>>         > inserted record?
>>         > 
>>         > 
>>         > Thanks
>>         > Lloyd
>>         > _________________________________________________________________________
>>         > Professional FreeSWITCH Consulting Services:
>>         > consulting at freeswitch.org
>>         > http://www.freeswitchsolutions.com
>>         > 
>>         > 
>>         > 
>>         > 
>>         > 
>>         > 
>>         > Official FreeSWITCH Sites
>>         > http://www.freeswitch.org
>>         > http://wiki.freeswitch.org
>>         > http://www.cluecon.com
>>         > 
>>         > 
>>         > FreeSWITCH-users mailing list
>>         > FreeSWITCH-users at lists.freeswitch.org
>>         > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>         > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>         > http://www.freeswitch.org
>>         
>>         
>>         _________________________________________________________________________
>>         Professional FreeSWITCH Consulting Services:
>>         consulting at freeswitch.org
>>         http://www.freeswitchsolutions.com
>>         
>>         
>>         
>>         
>>         Official FreeSWITCH Sites
>>         http://www.freeswitch.org
>>         http://wiki.freeswitch.org
>>         http://www.cluecon.com
>>         
>>         FreeSWITCH-users mailing list
>>         FreeSWITCH-users at lists.freeswitch.org
>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>         http://www.freeswitch.org
>>         
>>         _________________________________________________________________________
>>         Professional FreeSWITCH Consulting Services:
>>         consulting at freeswitch.org
>>         http://www.freeswitchsolutions.com
>>         
>>         
>>         
>>         
>>         Official FreeSWITCH Sites
>>         http://www.freeswitch.org
>>         http://wiki.freeswitch.org
>>         http://www.cluecon.com
>>         
>>         FreeSWITCH-users mailing list
>>         FreeSWITCH-users at lists.freeswitch.org
>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>         http://www.freeswitch.org
>>         
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
> 
> 
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> 
> 
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
> 



Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list