Hi,
 Actually i update(increment by 1 ) a value in a table with only one row,
ie. update table1 set col = col+1;
Can i get the updated value without diong select in the same query with
update. Because if i run Select after that than some time is lost and in the
mean time any other process updates the table and i do not get the exact
value.
Thanks,
Abhishek Jain



On 4/22/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> From 'Section 13.5.3 SET Syntax' of the 5.0.18 ref manual:
>
> IDENTITY = value
>
> The variable is a synonym for the LAST_INSERT_ID variable.
> It exists for compatibility with other database systems. You
> can read its value with SELECT @@IDENTITY, and set it using
> SET IDENTITY.
>
>
> INSERT_ID = value
>
> Set the value to be used by the following INSERT or ALTER
> TABLE statement when inserting an AUTO_INCREMENT value. This
> is mainly used with the binary log.
>
>
> LAST_INSERT_ID = value
>
> Set the value to be returned from LAST_INSERT_ID(). This is
> stored in the binary log when you use LAST_INSERT_ID() in a
> statement that updates a table. Setting this variable does
> not update the value returned by the mysql_insert_id() C API
> function.
>
> Eg.
>
> mysql> select @@last_insert_id;
> +------------------+
> | @@last_insert_id |
> +------------------+
> |                0 |
> +------------------+
> 1 row in set (0.04 sec)
>
> mysql> select @@insert_id;
> +-------------+
> | @@insert_id |
> +-------------+
> |           0 |
> +-------------+
> 1 row in set (0.00 sec)
>
> mysql> select @@identity;
> +------------+
> | @@identity |
> +------------+
> |          0 |
> +------------+
> 1 row in set (0.00 sec)
>
> mysql> set @@last_insert_id = 5;
> Query OK, 0 rows affected (0.00 sec)
>
> mysql> select @@last_insert_id;
> +------------------+
> | @@last_insert_id |
> +------------------+
> |                5 |
> +------------------+
> 1 row in set (0.00 sec)
>
> mysql> select @@insert_id;
> +-------------+
> | @@insert_id |
> +-------------+
> |           5 |
> +-------------+
> 1 row in set (0.00 sec)
>
> mysql> select @@identity;
> +------------+
> | @@identity |
> +------------+
> |          5 |
> +------------+
> 1 row in set (0.00 sec)
>
> So it appears you can use either of the three variables
> above to achieve the same effect.
>
> Regards
>
> Keith
>
> On Sat, 22 Apr 2006, Michael Stassen wrote:
>
> > To: David T. Ashley <[EMAIL PROTECTED]>
> > From: Michael Stassen <[EMAIL PROTECTED] >
> > Subject: Re: How to Find Most Recent Autoincrement Index Assigned???
> >
> > David T. Ashley wrote:
> > > I'm using PHP, and I sometimes INSERT new records in a table.  MySQL
> > > assigns
> > > a new autoincrement int field on each INSERT ... nothing surprising
> > > there.
> > > It goes 1, 2, 3, etc.
> > >
> > > What query can I use to find out what value this int autoincrement
> > > assigned
> > > field was?  I could of course SELECT based on what was just inserted,
> > > but
> > > that seems inefficient.
> > >
> > > Thanks for any help,
> > > Dave.
> >
> > LAST_INSERT_ID()
> >
> > <http://dev.mysql.com/doc/refman/4.1/en/information-functions.html>
> >
> > Michael
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>
>

Reply via email to