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

これにより次のエラーが発生し、理由がわかりません。最後の2つのINSERTでデフォルト値を使用したいと思います。

MySQLエラー1136:列数が行1の値数と一致しません

4

1 に答える 1

8

挿入ステートメントでは、渡される値の列名を明示的に指定する必要があります。すべての列値を渡す場合は、列名を無視できます。したがって、最後の2つのステートメントは

INSERT INTO student (bannerid,lastname,firstname) VALUES ('b00004444', 'baker', 'al');
INSERT INTO student (bannerid,lastname,firstname) VALUES ('b00005555', 'booker', 'sue');
于 2012-03-21T04:00:31.393 に答える