MySQL ERROR 1064(42000) 오류란?
MySQL에서 ERROR 1064 (42000)는 SQL 문법이 잘못되었을 때 발생하는 대표적인 오류입니다. 오류 메시지에 표시된 위치 근처의 구문을 점검하면 원인을 쉽게 찾을 수 있습니다.
특히 CREATE TABLE 문 작성 시 마지막 컬럼 뒤에 불필요한 콤마(,)를 남기면 이 오류가 자주 발생합니다. 아래 예시를 통해 살펴보겠습니다.
오류가 발생하는 코드 예시
mysql> create table DemoTable1492
-> (
-> timestamp TIMESTAMP,
-> event int,
-> );
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 5위 코드를 보면 event int 컬럼 뒤에 콤마가 하나 더 붙어 있습니다. MySQL은 닫는 괄호 ) 앞에서 유효하지 않은 구문을 발견하고 오류를 반환합니다.
해결 방법: 불필요한 콤마 제거
해결 방법은 간단합니다. 마지막 컬럼 뒤의 콤마만 제거하면 됩니다.
mysql> create table DemoTable1492
-> (
-> timestamp TIMESTAMP,
-> event int
-> );
Query OK, 0 rows affected (0.44 sec)테이블이 정상적으로 생성되었습니다.
동작 확인하기
1. 데이터 삽입
INSERT 문을 사용해 몇 개의 레코드를 추가해 보겠습니다.
mysql> insert into DemoTable1492 values(now(),101); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable1492 values(now()+interval 3 month,102); Query OK, 1 row affected (0.14 sec)
첫 번째 레코드에는 현재 시간이, 두 번째 레코드에는 현재 시간에서 3개월 후의 시간이 저장됩니다.
2. 데이터 조회
SELECT 문으로 전체 레코드를 확인합니다.
mysql> select * from DemoTable1492;
실행 결과는 다음과 같습니다.
+---------------------+-------+ | timestamp | event | +---------------------+-------+ | 2019-10-06 10:56:53 | 101 | | 2020-01-06 10:57:07 | 102 | +---------------------+-------+ 2 rows in set (0.00 sec)
정리
MySQL ERROR 1064(42000)는 주로 오타나 잘못된 문법에서 비롯됩니다. 이번 사례처럼 컬럼 정의 끝에 남은 콤마 하나만으로도 오류가 발생할 수 있으므로, 오류 메시지에 안내된 위치 근처의 구문을 꼼꼼히 확인하는 습관이 중요합니다.