Respostas:
Meu MySQL diz "Definição de tabela incorreta; pode haver apenas uma coluna automática e ela deve ser definida como uma chave " Então, quando adicionei a chave primária abaixo, ela começou a funcionar:
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);
A mensagem de erro completa soa:
ERROR 1075 (42000): Definição de tabela incorreta; pode haver apenas uma coluna automática e deve ser definida como uma chave
Portanto, adicione primary key
ao auto_increment
campo:
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;
Observe também que "chave" não significa necessariamente chave primária . Algo assim funcionará:
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;
Este é um exemplo inventado e provavelmente não é a melhor ideia, mas pode ser muito útil em certos casos.
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