Может быть только один автоматический столбец

Как исправить ошибку из 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;

Ответ 1

Мой 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;

Ответ 2

Звучит полное сообщение об ошибке:

ОШИБКА 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;

Ответ 3

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

Ответ 4

Если эта ошибка произошла в 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);

Не забудьте добавить поле первичного ключа....!