只能有一个自动列
我如何纠正错误从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);
不要忘记添加主键字段….!