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

MySQL에서 테이블 이름 'match'에 백틱을 사용해야 하는 이유와 오류 해결 방법

MySQL에서 'match' 테이블 이름 오류의 원인

테이블 이름으로 match를 사용할 때는 작은따옴표(')가 아니라 반드시 백틱(`)으로 감싸야 합니다. 그 이유는 match가 MySQL의 예약어(reserved word)이기 때문입니다. 백틱 없이 사용하면 다음과 같은 구문 오류가 발생합니다.

mysql> select *from match;
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 'match' at line 1

백틱을 사용한 오류 해결 방법

먼저 테이블을 생성하면서 예약어인 match를 테이블 이름으로 사용할 때 백틱으로 감싸 위 오류를 해결해 보겠습니다.

mysql> create table `match`
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    PlayerName varchar(20)
);
Query OK, 0 rows affected (0.62 sec)

이제 insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 예약어가 사용되는 모든 위치에서 반드시 백틱으로 감싸야 합니다.

mysql> insert into `match`(PlayerName) values('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into `match`(PlayerName) values('Bob');
Query OK, 1 row affected (0.16 sec)
mysql> insert into `match`(PlayerName) values('David');
Query OK, 1 row affected (0.24 sec)
mysql> insert into `match`(PlayerName) values('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into `match`(PlayerName) values('Sam');
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from `match`;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+------------+
| Id | PlayerName |
+----+------------+
|  1 | Chris      |
|  2 | Bob        |
|  3 | David      |
|  4 | Mike       |
|  5 | Sam        |
+----+------------+
5 rows in set (0.00 sec)

정리

MySQL에서 match처럼 예약어로 지정된 이름을 테이블이나 컬럼 이름으로 사용하려면 항상 백틱(`)으로 감싸야 합니다. 작은따옴표나 큰따옴표는 문자열 값에만 사용되며, 식별자에는 적용되지 않으므로 주의해야 합니다.