Mysql
 sql >> Database >  >> RDS >> Mysql

Errore #1064 con INSERT INTO

AGGIORNAMENTO Il motivo per cui l'OP riceve un errore di sintassi è perché una virgola è stata tralasciata dopo la dichiarazione della colonna della password:

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`))

NOTE SULL'INSERIMENTO IN CAMPI DI AUTO-INCREMENTO

Stai cercando di inserire in un campo a incremento automatico adminId . Non specificare un valore per questo, MySQL se ne occupa automaticamente.

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

Se vuoi inserire in modo esplicito un valore nel tuo INSERT query per il campo di incremento automatico hai tre scelte in base alla specifica che il campo deve essere NOT NULL - '' , 0 o NULL . Ecco il riferimento. .

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');

AGGIORNAMENTO Ulteriori test (come suggerito da @eggyal) rivelano che qualsiasi il valore può essere inserito nei campi di incremento automatico indipendentemente dal motore di database specificato.