RE: Getting the unique auto-increment primary key after an insert

2003-06-24 Thread Curtis Maurand

last_insert_id() returns the last auto-increment your connection.  Another 
connection might make an insert and the auto-increment may change between 
the time you insert and get your last_insert_id();

Curtis

On Tue, 24 Jun 2003, Matt Hyne wrote:

> 
> Thanks, 
> 
> I found it but I wasn't sure if it could be changed between my INSERT
> and the SELECT LAST..() by another instance of my application.
> 
> I'll suck-it-and-see !
> 
> Matt
> 
> [EMAIL PROTECTED] wrote:
> 
> > The good ol' LAST_INSERT_ID() function is what you probably need.
> Check it
> > out in manual.
> > 
> > Lian
> > 
> >> -Original Message-
> >> From: Matt Hyne [mailto:[EMAIL PROTECTED]
> >> Sent: Tuesday, June 24, 2003 5:58 AM
> >> To: [EMAIL PROTECTED]
> >> Subject: Getting the unique auto-increment primary key after an
> insert
> >> 
> >> 
> >> 
> >> Hi Folks, needs a little advice.
> >> 
> >> I have a table that contains a unique auto-incrementing primary key
> >> called 'id' (eg 1,2,3,4...).   When inserting data, I let mySQL
> allocate
> >> the value that goes into this field.
> >> 
> >> Now I want to insert a new row into this table and get the 'id' value
> >> that mySQL has allocated (so I can then do some more work such as
> >> attaching a filename called 'id'.xxx).
> >> 
> >> Can someone suggest a good way to do this ?  I thought of maybe doing
> a
> >> "SELECT MAX(id) FROM table" first and then using id+1 as the new 'id'
> >> for the next entry but this is frought with danger as someone could
> come
> >> along and insert a new entry between my SELECT and INSERT.
> >> 
> >> Because 'id' is the only guaranteed unique column, I cannot think of
> a
> >> way to do a SELECT after an INSERT to get back the 'id' of the last
> thing inserted.
> >> 
> >> Can anyone help ?
> >> 
> >> Matt
> >> 
> >> 
> >> --
> >> MySQL General Mailing List
> >> For list archives: http://lists.mysql.com/mysql
> >> To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
> 
> 
> 

-- 
--
Curtis Maurand
mailto:[EMAIL PROTECTED]
http://www.maurand.com



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Getting the unique auto-increment primary key after an insert

2003-06-23 Thread csebe
As stated only few days ago on this list, the LAST_INSERT_ID() is relevant
per connection, i.e. it returns the correct last inserted id of the current
connection, disregarding other possible inserts done through other parallel
connections. So each connection has its own counter for this.

HTH,
Lian
www.programEz.net

> -Original Message-
> From: Matt Hyne [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 24, 2003 9:07 AM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: RE: Getting the unique auto-increment primary key after an
> insert
>
>
>
> Thanks,
>
> I found it but I wasn't sure if it could be changed between my INSERT
> and the SELECT LAST..() by another instance of my application.
>
> I'll suck-it-and-see !
>
> Matt
>
> [EMAIL PROTECTED] wrote:
>
> > The good ol' LAST_INSERT_ID() function is what you probably need.
> Check it
> > out in manual.
> >
> > Lian
> >
> >> -Original Message-
> >> From: Matt Hyne [mailto:[EMAIL PROTECTED]
> >> Sent: Tuesday, June 24, 2003 5:58 AM
> >> To: [EMAIL PROTECTED]
> >> Subject: Getting the unique auto-increment primary key after an
> insert
> >>
> >>
> >>
> >> Hi Folks, needs a little advice.
> >>
> >> I have a table that contains a unique auto-incrementing primary key
> >> called 'id' (eg 1,2,3,4...).   When inserting data, I let mySQL
> allocate
> >> the value that goes into this field.
> >>
> >> Now I want to insert a new row into this table and get the 'id' value
> >> that mySQL has allocated (so I can then do some more work such as
> >> attaching a filename called 'id'.xxx).
> >>
> >> Can someone suggest a good way to do this ?  I thought of maybe doing
> a
> >> "SELECT MAX(id) FROM table" first and then using id+1 as the new 'id'
> >> for the next entry but this is frought with danger as someone could
> come
> >> along and insert a new entry between my SELECT and INSERT.
> >>
> >> Because 'id' is the only guaranteed unique column, I cannot think of
> a
> >> way to do a SELECT after an INSERT to get back the 'id' of the last
> thing inserted.
> >>
> >> Can anyone help ?
> >>
> >> Matt
> >>
> >>
> >> --
> >> MySQL General Mailing List
> >> For list archives: http://lists.mysql.com/mysql
> >> To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
>
>


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Getting the unique auto-increment primary key after an insert

2003-06-23 Thread Matt Hyne

Thanks, 

I found it but I wasn't sure if it could be changed between my INSERT
and the SELECT LAST..() by another instance of my application.

I'll suck-it-and-see !

Matt

[EMAIL PROTECTED] wrote:

> The good ol' LAST_INSERT_ID() function is what you probably need.
Check it
> out in manual.
> 
> Lian
> 
>> -Original Message-
>> From: Matt Hyne [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, June 24, 2003 5:58 AM
>> To: [EMAIL PROTECTED]
>> Subject: Getting the unique auto-increment primary key after an
insert
>> 
>> 
>> 
>> Hi Folks, needs a little advice.
>> 
>> I have a table that contains a unique auto-incrementing primary key
>> called 'id' (eg 1,2,3,4...).   When inserting data, I let mySQL
allocate
>> the value that goes into this field.
>> 
>> Now I want to insert a new row into this table and get the 'id' value
>> that mySQL has allocated (so I can then do some more work such as
>> attaching a filename called 'id'.xxx).
>> 
>> Can someone suggest a good way to do this ?  I thought of maybe doing
a
>> "SELECT MAX(id) FROM table" first and then using id+1 as the new 'id'
>> for the next entry but this is frought with danger as someone could
come
>> along and insert a new entry between my SELECT and INSERT.
>> 
>> Because 'id' is the only guaranteed unique column, I cannot think of
a
>> way to do a SELECT after an INSERT to get back the 'id' of the last
thing inserted.
>> 
>> Can anyone help ?
>> 
>> Matt
>> 
>> 
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Getting the unique auto-increment primary key after an insert

2003-06-23 Thread csebe
The good ol' LAST_INSERT_ID() function is what you probably need. Check it
out in manual.

Lian

> -Original Message-
> From: Matt Hyne [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 24, 2003 5:58 AM
> To: [EMAIL PROTECTED]
> Subject: Getting the unique auto-increment primary key after an insert
>
>
>
> Hi Folks, needs a little advice.
>
> I have a table that contains a unique auto-incrementing primary key
> called 'id' (eg 1,2,3,4...).   When inserting data, I let mySQL allocate
> the value that goes into this field.
>
> Now I want to insert a new row into this table and get the 'id' value
> that mySQL has allocated (so I can then do some more work such as
> attaching a filename called 'id'.xxx).
>
> Can someone suggest a good way to do this ?  I thought of maybe doing a
> "SELECT MAX(id) FROM table" first and then using id+1 as the new 'id'
> for the next entry but this is frought with danger as someone could come
> along and insert a new entry between my SELECT and INSERT.
>
> Because 'id' is the only guaranteed unique column, I cannot think of a
> way to do a SELECT after an INSERT to get back the 'id' of the last
> thing inserted.
>
> Can anyone help ?
>
> Matt
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
>
>


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]