Column count doesn't match value count at row 1
대개 테이블에 데이터를 추가할 때 발생하는 에러로, 추가할 데이터의 컬럼 수와 테이블의 컬럼 수가 다르거나 데이터 타입이 다를 때 발생한다.
예시
아래와 같은 스키마를 가진 docs 테이블이 있다고 하자.
CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`rev` int(3) unsigned NOT NULL,
`content` varchar(200) NOT NULL,
PRIMARY KEY (`id`,`rev`)
) DEFAULT CHARSET=utf8;
이 테이블에 아래의 INSERT 명령을 실행하면, 에러가 발생하는 것을 알 수 있다.
INSERT INTO `docs` (`id`, `rev`, `content`) VALUES
('4', 'The earth is flat');
해결
정의한 테이블 스키마에 맞게 데이터를 추가하면 된다. 데이터 사이에 쉼표를 빠트리진 않았는지도 확인해본다.
INSERT INTO `docs` (`id`, `rev`, `content`) VALUES
('4', '2', 'The earth is flat');
또한, 테이블 컬럼명에 Key, default, Null과 같은 예약어가 포함되어 있어도 같은 에러가 발생할 수 있다.
그리고 테이블 뒤에 컬럼명을 명시하지 않을 경우에는 항상 모든 컬럼의 데이터를 작성해야 한다.
INSERT INTO `docs` VALUES
('4', '2', 'The earth is flat');
참고 문서
https://jeonjin.tistory.com/469