MySQL 오류 1064(42000)의 주요 원인
ERROR 1064 (42000)는 SQL 구문이 올바르게 작성되지 않았을 때 주로 발생하는 오류입니다. 특히 데이터베이스를 생성할 때 다음과 같은 상황에서 자주 나타납니다.
- 백틱(`) 기호를 잘못 사용했거나 누락한 경우
- 데이터베이스 이름에 하이픈(-)을 포함한 경우
예를 들어 'Demo-Table'처럼 이름에 하이픈이 들어가면 MySQL은 이를 유효한 식별자로 인식하지 못해 ERROR 1064 (42000)를 반환합니다.
오류 없이 데이터베이스 생성하는 기본 구문
특수문자가 없는 일반적인 데이터베이스 이름이라면 백틱 없이도 정상적으로 생성할 수 있습니다. 기본 구문은 다음과 같습니다.
create database yourDatabaseName;
하이픈 사용 시 발생하는 오류 예시
그렇다면 데이터베이스 이름에 하이픈을 넣으면 어떻게 될까요? 실제로 실행해 보겠습니다.
mysql> create database customer-tracker;
MySQL에서는 데이터베이스 이름에 하이픈을 직접 사용할 수 없기 때문에 아래와 같은 오류 메시지가 출력됩니다.
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 '-tracker' at line 1
백틱 기호로 오류 해결하기
하이픈이 포함된 이름을 꼭 사용해야 한다면, 데이터베이스 이름 전체를 백틱(`) 기호로 감싸주면 됩니다. 이렇게 하면 MySQL이 해당 문자열을 하나의 식별자로 인식합니다.
mysql> create database `customer-tracker`;
실행 결과는 다음과 같습니다.
Query OK, 1 row affected (0.21 sec)
이제 데이터베이스가 성공적으로 생성되었습니다.
정리
- ERROR 1064 (42000)는 대부분 SQL 구문 오류, 특히 식별자 표기 문제에서 비롯됩니다.
- 일반적인 이름은 백틱 없이
create database 이름;형태로 생성하면 됩니다. - 하이픈 등 특수문자가 포함된 이름은 반드시 백틱(`)으로 감싸야 합니다.
이 규칙만 기억하면 데이터베이스 생성 과정에서 발생하는 1064 오류를 손쉽게 예방하고 해결할 수 있습니다.