Re: MySQL auto_increment fields Server version: 5.1.32-community-log

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



this is a very good startup for the issue. now the question is where does it
get the value if there is no max(ai) or when I do an insert in an empty
table with the ai field set to 1 where does the innoDB get the next ai value
10720 ?

I assume that the SELECT MAX(ai_col) FROM t FOR UPDATE; return is
incremented by 1 so how does this end up with 10720?

anyway, ur statement shows that there has changed somethimg definately. but
what?
maid be there is some flag telling the kernel that ai fields should be
unique throughout the database? some left behind of the cluster version of
mySQL?


"Nisse Engström" <news.NOSPAM.0ixbtqKe@xxxxxxxx> wrote in message
news:91.F7.55947.DC74F7A4@xxxxxxxxxxxxxxx
> On Sun, 9 Aug 2009 20:17:15 +0200, "Ralph Deffke" wrote:
>
> > I'm facing the fact that it seems that auto_increment fields in a table
not
> > start at 1 like it was in earlier versions even if I install mySQL brand
new
> > creating all tables new. it seems to me that auto_increments handling
has
> > changed to older version. is somebody out there who can give me a quick
> > background about auto_increment and how and if I can control the
behavior of
> > mySQL about them.
>
> Did you Google for it? I found the following page that
> might be relevant:
>
>
<http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html>
>
>    "Beginning with MySQL 5.1.22, InnoDB provides a locking
>     strategy that significantly improves scalability and
>     performance of SQL statements that add rows to tables
>     with AUTO_INCREMENT columns.
>     ...
>     InnoDB uses the following algorithm to initialize the
>     auto-increment counter for a table t that contains an
>     AUTO_INCREMENT column named ai_col: After a server
>     startup, for the first insert into a table t, InnoDB
>     executes the equivalent of this statement:
>
>       SELECT MAX(ai_col) FROM t FOR UPDATE;
>
>     InnoDB increments by one the value retrieved by the
>     statement and assigns it to the column and to the
>     auto-increment counter for the table."
>
>
> /Nisse



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux