MySQL에서 ERROR 1064 (42000)는 SQL 구문에 오류가 있을 때 발생하는 대표적인 에러입니다. 이 에러는 다양한 원인으로 발생할 수 있지만, 그중 가장 흔한 사례 중 하나가 데이터 타입 이름을 잘못 작성하는 경우입니다.
대표적인 원인: 잘못된 데이터 타입 사용
예를 들어, MySQL에서 지원하지 않는 var_char라는 타입을 사용하면 이 에러가 발생합니다. MySQL의 올바른 문자열 타입은 varchar이므로, var_char(100) 대신 varchar(100)처럼 정확한 타입명을 사용해야 합니다.
오류 발생 예시
다음은 잘못된 타입명으로 인해 에러가 발생하는 상황입니다.
mysql> create table removeErrorDemo
-> (
-> StudentId int,
-> StudentName var_char(50)
-> );
위 쿼리를 실행하면 아래와 같은 에러 메시지가 출력됩니다.
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 'var_char(50)
)' at line 4
에러 메시지를 자세히 보면, 문제가 되는 부분인 'var_char(50)' 근처(near)에서 구문 오류가 발생했음을 알려줍니다. 이 힌트를 통해 어느 부분이 잘못되었는지 빠르게 파악할 수 있습니다.
오류 해결 방법
해결 방법은 간단합니다. 오타로 인한 잘못된 타입명을 올바른 타입명으로 수정하면 됩니다. 아래는 var_char를 varchar로 바꿔 오류를 해결한 쿼리입니다.
mysql> create table removeErrorDemo
-> (
-> StudentId int,
-> StudentName varchar(100)
-> );
Query OK, 0 rows affected (1.72 sec)
실행 결과 Query OK, 0 rows affected 메시지와 함께 테이블이 정상적으로 생성된 것을 확인할 수 있습니다. 이처럼 데이터 타입을 정확하게 지정하면 ERROR 1064 (42000) 없이 쿼리가 성공적으로 실행됩니다.
ERROR 1064 해결을 위한 추가 팁
- 에러 메시지의 'near' 부분 확인: 에러 메시지에는 오류가 발생한 위치 근처의 구문이 함께 표시되므로, 해당 부분을 먼저 점검하세요.
- 예약어 및 타입명 철자 확인:
varchar,int,datetime등 MySQL에서 실제 지원하는 키워드인지 공식 매뉴얼로 검증하세요. - MySQL 버전별 문법 차이 확인: 버전에 따라 지원하는 문법이 다를 수 있으므로, 사용 중인 서버 버전에 맞는 매뉴얼을 참고하는 것이 좋습니다.
- 구두점 점검: 괄호, 쉼표, 세미콜론 등이 누락되거나 잘못 배치된 경우에도 동일한 에러가 발생할 수 있습니다.
요약하면, MySQL ERROR 1064 (42000)는 주로 오타나 잘못된 문법 사용으로 인해 발생합니다. 이번 사례처럼 var_char 대신 varchar를 사용하는 것만으로도 손쉽게 해결할 수 있으니, 에러 메시지의 힌트를 활용해 문제 구문을 찾아 수정해 보세요.