2012-03-21 153 views
0
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行的值计数不匹配

MySQL错误1136:列数并不在行1

+0

插入学生VALUES('b00004444','面包师','AL',主要,GPA,年龄); 插入学生VALUES('b00005555','booker','sue',major,gpa,age); – kmaz13 2012-03-21 04:04:47

回答

6

匹配值计数在您需要明确指定列名于正在传递的值插入语句,你可以忽略的列名,如果你正在传递所有的列值。所以你的最后两条语句应该是

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

我明白了。谢谢你的帮助! – kmaz13 2012-03-21 04:04:21

+0

我会在5分钟内把支票放在你的答案上......再次感谢:) – kmaz13 2012-03-21 04:05:43

相关问题