Risposte:
Il mio MySQL dice "Definizione di tabella errata; può esserci solo una colonna automatica e deve essere definita come una chiave " Quindi, quando ho aggiunto la chiave primaria come sotto, ha iniziato a funzionare:
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);
Viene riprodotto il messaggio di errore completo:
ERRORE 1075 (42000): definizione di tabella non corretta; può esserci solo una colonna auto e deve essere definita come chiave
Quindi aggiungi 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;
Nota anche che "chiave" non significa necessariamente chiave primaria . Qualcosa di simile funzionerà:
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;
Questo è un esempio artificioso e probabilmente non è l'idea migliore, ma può essere molto utile in alcuni casi.
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