Comment corriger l'erreur de MySQL "Vous ne pouvez avoir qu'une seule colonne à incrémentation automatique".
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;
Mon MySQL dit "Définition de table incorrecte; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie en tant que clé" Ainsi, lorsque j'ai ajouté une clé primaire comme ci-dessous, il a commencé à fonctionner:
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;
Le message d'erreur complet sonne:
ERREUR 1075 (42000): définition de table incorrecte; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie comme une clé
Alors ajoutez primary key
à la auto_increment
champ:
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;
Notez également que "clé" ne signifie pas nécessairement primaire clé. Quelque chose comme ça va marcher:
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;
Ceci est un exemple artificiel et probablement pas la meilleure idée, mais il peut être très utile dans certains cas.
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