CREATE TABLE animals (
    grp ENUM('fish','mammal','bird') NOT NULL,
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (grp,id)
);
提示错误:
Incorrect table definition;there can be only one auto column and it must be defined as a key!为啥会报这个错误呢?这个建表语句来自官方手册:
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#multiple-tables

解决方案 »

  1.   

    改成这个。
    CREATE TABLE animals (
        grp ENUM('fish','mammal','bird') NOT NULL,
        id MEDIUMINT NOT NULL AUTO_INCREMENT,
        name CHAR(30) NOT NULL,
        PRIMARY KEY (grp,id)
    ENGINE=MyISAM;
    innodb 是不支持这种方式的。
      

  2.   

    对于MyISAM和BDB表,你可以在第二栏指定AUTO_INCREMENT以及多列索引
      

  3.   


    CREATE = "CREATE TABLE animals (grp ENUM('fish','mammal','bird') NOT NULL,
              id MEDIUMINT NOT NULL AUTO_INCREMENT,name CHAR(30) NOT NULL,
              PRIMARY KEY (grp,id)) ENGINE=MyISAM" 
    cur.execute(CREATE)
      

  4.   

    CREATE TABLE `animals` (
      `grp` enum('fish','mammal','bird') NOT NULL,
      `id` mediumint(9) NOT NULL AUTO_INCREMENT,
      `name` char(30) NOT NULL,
      PRIMARY KEY (`grp`,`id`),
      KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
      

  5.   

    已经 提示
    it must be defined as a key