Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur #1064 avec INSERT INTO

MISE À JOUR La raison pour laquelle l'OP reçoit une erreur de syntaxe est qu'une virgule a été omise après la déclaration de la colonne de mot de passe :

CREATE TABLE IF NOT EXISTS `terrier`.`admin` (
  `adminId` int(11) NOT NULL auto_increment,
  `userName` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL <-- should be a comma here
  PRIMARY KEY (`adminId`))

REMARQUES SUR L'INSERTION DANS LES CHAMPS D'INCRÉMENTATION AUTOMATIQUE

Vous essayez d'insérer dans un champ auto-incrémenté adminId . Ne spécifiez pas de valeur pour cela, MySQL s'en charge automatiquement.

INSERT INTO admin (`userName`, `password`) VALUES ('wardens', 'Bega&1120');

Si vous souhaitez placer explicitement une valeur dans votre INSERT requêtes pour le champ d'auto-incrémentation, vous avez trois choix basés sur la spécification du champ comme étant NOT NULL - '' , 0 , ou NULL . Voici la référence. .

INSERT INTO admin (`adminId`, `userName`, `password`) VALUES ('', 'wardens', 'Bega&1120');
INSERT INTO admin (`adminId`, `userName`, `password`) VALUES (0, 'wardens', 'Bega&1120');
INSERT INTO admin (`adminId`, `userName`, `password`) VALUES (NULL, 'wardens', 'Bega&1120');

MISE À JOUR Des tests supplémentaires (comme suggéré par @eggyal) révèlent que tout la valeur peut être insérée dans les champs à incrémentation automatique quel que soit le moteur de base de données spécifié.