只能有一个自动列

我如何纠正错误从MySQL'你只能有一个自动增量列'。

CREATE TABLE book ( id INT AUTO_INCREMENT NOT NULL, accepted_terms BIT(1) NOT NULL, accepted_privacy BIT(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

我的MySQL说:“不正确的表定义;只能有一个自动列,它必须被定义为一个键 ”所以当我添加主键如下,它开始工作:

 CREATE TABLE book ( id INT AUTO_INCREMENT NOT NULL, accepted_terms BIT(1) NOT NULL, accepted_privacy BIT(1) NOT NULL, primary key (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

完整的错误消息听起来:

错误1075(42000):不正确的表定义; 只能有一个自动列,它必须被定义为一个键

所以把primary key添加到auto_increment字段中:

 CREATE TABLE book ( id INT AUTO_INCREMENT primary key NOT NULL, accepted_terms BIT(1) NOT NULL, accepted_privacy BIT(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
 CREATE TABLE book ( id INT AUTO_INCREMENT primary key NOT NULL, accepted_terms BIT(1) NOT NULL, accepted_privacy BIT(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 

如果在CodeIgniter中发生这个错误:

 $fields=array( 'slno' => array( 'type' => 'int', 'constraint' => 255, 'unsigned' => TRUE, 'auto_increment' => TRUE ), 'node_id' => array( 'type' => 'int', 'constraint' => 255, 'unsigned' => TRUE ), 'node' => array( 'type' => 'text', 'null' => TRUE ) ); $this->dbforge->add_field($fields); $this->dbforge->add_key("slno",TRUE); $this->dbforge->create_table($key,TRUE); 

不要忘记添加主键字段….!