Respuestas:
Mi MySQL dice "Definición incorrecta de la tabla; solo puede haber una columna automática y debe definirse como una clave " Entonces, cuando agregué la clave principal como se muestra a continuación, comenzó 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);
Suena el mensaje de error completo:
ERROR 1075 (42000): Definición de tabla incorrecta; solo puede haber una columna automática y debe definirse como una clave
Entonces agregue primary key
al 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;
Tenga en cuenta también que "clave" no significa necesariamente clave primaria . Algo como esto 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 es un ejemplo artificial y probablemente no sea la mejor idea, pero puede ser muy útil en ciertos 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