Page 1 of 1

Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 5:02 pm
by Marc Vanzegbroeck
Hi,

How can I receive the last inserted ID-number after a 'INSERT INTO' command in TMySQL?

Thanks,
Marc

Re: Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 5:31 pm
by Rick Lipkin
Marc

You may have to open a recordset with just a select statement on ID-number .. like ( assuming ID-number is a number that is incremented by 1 and not a random number.

"Select [ID-number] from Table order by [ID-number]"

Open Recordset
oRs:MoveLast()

My best guess ..

Rick Lipkin

Re: Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 5:43 pm
by Marc Vanzegbroeck
Rick,

I was also thinking of something like that, but what if more people inserting records at the same time on a network?
I saw something like LAST_INSERT_ID() in the MySQL manual, but this function is not recogniced by my xHarbour-version.

Thanks,
Marc

Re: Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 5:53 pm
by Rick Lipkin
Marc

A couple of suggestions on concurrency .. I have used a table that contains only 'ID-number' and when a person starts the Add process .. I append the Next number to the ID Table and store that number to a variable and when your form is ready to save .. you already have the number reserved and if someone gets in there concurrently, they get the next number in the ID table....

or

You could store the last used ID-number in a table and during the Insert routine .. increment the Last Used ID-number and append your record ..

Rick

Re: Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 5:59 pm
by Daniel Garcia-Gil
Hello

launch a select statement
example:
oQry = oServer:Query( "SELECT LAST_INSERT_ID() AS lastinsert" )

to retrieve the value oQry:lastinsert

Re: Last inserted ID in MySQL

PostPosted: Mon Aug 06, 2012 9:10 pm
by Marc Vanzegbroeck
Daniel,

I have try it, and its working!!

Thanks,

Marc