The requirement is that it be indexed. The index need not be a primary key.

mysql> create table t (i int not null auto_increment, index(i)) engine innodb;
Query OK, 0 rows affected (0.45 sec)


On Jan 25, 2010, at 9:39 AM, Yang Zhang wrote:

> Right, I saw the docs. I'm fine with creating an index on it, but the
> only way I've successfully created a table with auto_increment is by
> making it a primary key. And I still don't understand why this
> requirement is there in the first place.
> 
> On Mon, Jan 25, 2010 at 10:32 AM, Tom Worster <f...@thefsb.org> wrote:
>> it's not an innodb thing:
>> 
>> http://dev.mysql.com/doc/refman/5.0/en/create-table.html
>> 
>> "Note
>> "There can be only one AUTO_INCREMENT column per table, it must be indexed, 
>> and it cannot have a DEFAULT value. An AUTO_INCREMENT column works properly 
>> only if it contains only positive values. Inserting a negative number is 
>> regarded as inserting a very large positive number. This is done to avoid 
>> precision problems when numbers “wrap” over from positive to negative and 
>> also to ensure that you do not accidentally get an AUTO_INCREMENT column 
>> that contains 0."
>> 
>> -----Original Message-----
>> From: "Yang Zhang" <yanghates...@gmail.com>
>> Sent: Monday, January 25, 2010 10:21am
>> To: mysql@lists.mysql.com
>> Subject: auto_increment without primary key in innodb?
>> 
>> In innodb, is it possible to have an auto_increment field without
>> making it a (part of a) primary key? Why is this a requirement? I'm
>> getting the following error. Thanks in advance.
>> 
>> ERROR 1075 (42000): Incorrect table definition; there can be only one
>> auto column and it must be defined as a key
>> --
>> Yang Zhang
>> http://www.mit.edu/~y_z/
>> 
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:    http://lists.mysql.com/mysql?unsub=...@thefsb.org
>> 
>> 
>> 
>> 
> 
> 
> 
> -- 
> Yang Zhang
> http://www.mit.edu/~y_z/
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/mysql?unsub=paul.dub...@sun.com
> 

-- 
Paul DuBois
Sun Microsystems / MySQL Documentation Team
Madison, Wisconsin, USA
www.mysql.com


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to