Ошибка MySQL 1136: количество столбцов не соответствует количеству значений в строке 1 - PullRequest
0 голосов
/ 21 марта 2012
DROP TABLE IF EXISTS student;

CREATE  TABLE student(
  bannerid VARCHAR(9) PRIMARY KEY NOT NULL ,
  lastname VARCHAR(45) NOT NULL ,
  firstname VARCHAR(45) NOT NULL ,
  major VARCHAR(45) NOT NULL DEFAULT 'undeclared' ,
  gpa DECIMAL(2) NOT NULL DEFAULT 0.00 ,
  age INT NOT NULL DEFAULT 18 );

  INSERT INTO student VALUES ('b00001111', 'smith', 'fred', 'computer science', 3.12, 20);
  INSERT INTO student VALUES ('b00002222', 'jones', 'herb', 'computer science', 2.00, 19);
  INSERT INTO student VALUES ('b00003333', 'chan', 'jackie', 'computer information systems', 3.50, 50);
  INSERT INTO student VALUES ('b00004444', 'baker', 'al');
  INSERT INTO student VALUES ('b00005555', 'booker', 'sue');

Это приводит к следующей ошибке, и я не понимаю, почему. Я хочу, чтобы последние два INSERT использовали значения по умолчанию.

Ошибка MySQL 1136: количество столбцов не соответствует значению в строке 1

1 Ответ

6 голосов
/ 21 марта 2012

В операторе вставки вам необходимо явно указать имена столбцов для передаваемых значений, вы можете игнорировать имена столбцов, если передаете все значения столбцов. Итак, ваши последние два утверждения должны быть

INSERT INTO student (bannerid,lastname,firstname) VALUES ('b00004444', 'baker', 'al');
INSERT INTO student (bannerid,lastname,firstname) VALUES ('b00005555', 'booker', 'sue');
...