MySQL 오류 #1064란 무엇인가?
MySQL 데이터베이스 오류 #1064는 대부분 잘못된 SQL 구문(syntax) 때문에 발생합니다. 이 오류는 MySQL 서버가 작성된 쿼리를 이해하지 못할 때 나타나며, 흔한 원인 중 하나는 컬럼 정의 끝에 불필요한 쉼표(,)가 남아 있는 경우입니다.
오류가 발생하는 예제
예를 들어, 아래와 같이 테이블을 생성하는 쿼리를 실행한다고 가정해 보겠습니다.
mysql> create table DemoTable
(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserAge int,
UserAddress varchar(200),
UserCountryName varchar(100),
isMarried boolean,
);
위 쿼리를 실행하면 다음과 같은 오류 메시지가 출력됩니다.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 10
오류의 원인
오류 메시지를 자세히 보면 문제 지점이 ')' 근처라고 안내하고 있습니다. 원인은 마지막 컬럼인 isMarried boolean 뒤에 붙어 있는 마지막 쉼표(,)입니다. SQL에서는 다음 항목이 더 이상 없는데도 쉼표를 남겨두면 구문 오류로 인식됩니다.
오류 해결 방법
이 오류를 해결하려면 마지막 쉼표만 제거하면 됩니다. 아래는 수정된 올바른 쿼리입니다.
mysql> create table DemoTable
(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserAge int,
UserAddress varchar(200),
UserCountryName varchar(100),
isMarried boolean
);
Query OK, 0 rows affected (1.04 sec)
쿼리가 정상적으로 실행되어 Query OK 메시지와 함께 테이블이 성공적으로 생성된 것을 확인할 수 있습니다.
오류 #1064 예방 팁
- 컬럼 정의 마지막 항목 뒤에는 쉼표를 남기지 않습니다.
- 괄호의 열림과 닫힘이 서로 짝을 이루는지 확인합니다.
- 예약어(reserved word)를 테이블명이나 컬럼명으로 사용하지 않도록 주의합니다.
- 사용 중인 MySQL 버전의 공식 매뉴얼에서 올바른 구문을 참고합니다.