Відповіді:
Мій 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;
ALTER TABLE book ADD id INT AUTO_INCREMENT NOT NULL, ADD PRIMARY KEY (id);
Звучить повне повідомлення про помилку:
ПОМИЛКА 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 (
isbn BIGINT NOT NULL PRIMARY KEY,
id INT NOT NULL AUTO_INCREMENT,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL,
INDEX(id)
) 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