Может быть только один автоматический столбец
Как исправить ошибку из 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);
Не забудьте добавить поле первичного ключа....!