column count doesn't match value count at row 1
은 table에 존재하는 값들의 갯수 또는 자료형이
insert하고자 하는 value들과 일치하지 않을 때 발생한다.
이거 해결하느라 시간을 많이 쓴것같다.
육안으로는 구별이 어렵다 .
예를 들어보자.
mysql> desc evaluation;
+-------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------+------+-----+---------+----------------+
| evaluationID | int(11) | NO | PRI | NULL | auto_increment |
| userID | varchar(50) | YES | | NULL | |
| lectureName | varchar(50) | YES | | NULL | |
| professorName | varchar(50) | YES | | NULL | |
| lectureYear | int(11) | YES | | NULL | |
| semesterDivide | varchar(20) | YES | | NULL | |
| evaluationTitle | varchar(50) | YES | | NULL | |
| evaluationContent | varchar(2048) | YES | | NULL | |
| totalScore | varchar(10) | YES | | NULL | |
| creditScore | varchar(10) | YES | | NULL | |
| comfortableScore | varchar(10) | YES | | NULL | |
| lectureScore | varchar(10) | YES | | NULL | |
| likeCount | int(11) | YES | | NULL | |
자 위와 같이 evaluation이라는 table의 column들이다.
여기에
INSERT INTO EVALUATION VALUES (0, 'admin', '1', '2', 2018, '1학기', '전공', '3', '4', 'A', 'D', 'F', 'B', 0);
를 해준다면
column count doesn't match value count at row 1 에러가 나는가?
육안으로 굉장히 구별이 어렵다.
이것을 구별하기 위해 내가 찾은 방법은
insert into evaluation (evaluationID, userID, professorName, lectureYear, semesterDivide, lectureDivide, evaluationTitle, evaluationContent, totalScore, creditScore, comfortableScore, lectureScore) values (0, 'admin', '1', '2', 2018, '1학기', '전공', '3', '4', 'A', 'D', 'F', 'B', 0);
insert into 테이블명 (추가할 칼럼들) values (추가할 값들);
위와같은 형식으로 해보는 것이다. column명이 길수록 노가다 겠지만
ERROR 1054 (42S22): Unknown column 'lectureDivide' in 'field list'
처럼 무엇이 에러인지 바로 찾아낼 수 있다.
lectureDivide에 해당하는 값이 table column에서 빠져있었던 것이다.
앞으로 mysql을 많이 사용할 텐데 꼭 기억해두도록하자.
'개발 > Web Programming' 카테고리의 다른 글
JSP 스크립트 요소 (0) | 2019.03.19 |
---|---|
Boostrap 자동완성 팁 (0) | 2019.03.17 |
mysql 기본 (0) | 2019.03.14 |
JSP 페이지 한글 깨짐현상 (0) | 2019.03.14 |
[JSP] 개발환경 윈도우로 바꾼후기 (0) | 2019.03.12 |