Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL ERROR 1064 (42000) 해결 방법: SQL 구문 오류의 원인과 수정하기

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_charvarchar로 바꿔 오류를 해결한 쿼리입니다.

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를 사용하는 것만으로도 손쉽게 해결할 수 있으니, 에러 메시지의 힌트를 활용해 문제 구문을 찾아 수정해 보세요.