On Friday 13 December 2002 20:43, you wrote:

Hi Sean,

this is not a bug:

http://www.mysql.com/doc/en/example-AUTO_INCREMENT.html

 For MyISAM and BDB tables you can specify AUTO_INCREMENT on secondary column 
in a multi-column key. In this case the generated value for the autoincrement 
column is calculated as MAX(auto_increment_column)+1) WHERE 
prefix=given-prefix. This is useful when you want to put data into ordered 
groups. 

Regards

Georg

> Hi all, I have recently encountered some strange (to me) behaviour with an
> auto
> increment column. It resulted because of an oversight in table creation.
> Here is some SQL statements that will illustrate my issue:
>
> CREATE TABLE test (
>     ID INT AUTO_INCREMENT,
>     Name CHAR(30),
>     KEY (Name, ID)
> )TYPE=MyISAM;
>
> INSERT INTO test SET Name="bob";
> INSERT INTO test SET Name="tom";
>
>
> Now, both of those columns got ID=1 from the insert.
>
> A few observations:
> 1) MySQL requires AUTO_INCREMENT columns to have an index. This table
>     uses ID as an index, but it's not a leftmost-prefix of any index, which
> i thought would give
>     a create error. (is this a bug?)
> 2) considering this non auto increment behaviour, i would think that ID
> should be NULL, since
>     ID is allowed NULL values, and no value was assigned to the ID in the
> insert statements.
>
> Also, this works the same if ID is defined as    "ID INT NOT NULL
> AUTO_INCREMENT"
>
>
> It seems that this is what's happening:
> When MySQL executes the insert queries, it correctly recognizes that ID is
> an AUTO_INCREMENT
> column, so it tries to get the new auto increment value. But, because ID
> isnt "properly" indexed for
> an auto increment column, the value is incorrectly reported, and the column
> is set to 1 every time.
>
> weird, huh?
> sean peters
> [EMAIL PROTECTED]
>
>
> mysql, query
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to