Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 예약어를 테이블명이나 컬럼명으로 사용할 때 발생하는 에러를 어떻게 해결하나요?

<시간/>

이 오류는 예약어를 테이블 또는 열 이름으로 사용하려고 할 때 발생합니다. 다음으로 인해 발생할 수 있습니다. -

사례 1 :테이블명으로 예약어를 사용할 때마다 -

mysql> create table insert
−> (
−> Id 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 'insert
(
Id int
)' at line 1

위의 오류는 'insert'라는 단어가 MySQL의 키워드이기 때문에 발생했습니다.

사례 2 − MySQL에서 열 이름으로 예약어를 사용할 때마다.

mysql> create table Customers
   −> (
   −> Add 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 'Add int
)' at line 3

위의 에러는 컬럼명 'Add'가 MySQL의 예약어이기 때문에 발생한 것입니다.

위의 오류를 피하려면 MySQL의 모든 예약어에 대해 알아야 합니다.

MySQL 예약어 중 일부는 다음과 같습니다 -

Insert
Add
Is
Key
Like etc.

MySQL 예약 키워드의 전체 목록은 다음과 같습니다. 이것은 MySQL의 공식 웹사이트입니다 - https://dev.mysql.com/doc/refman/5.7/en/keywords.html

이 문제를 해결하려면 예약어와 함께 역따옴표를 사용하세요.

참고 - 테이블명이나 컬럼명에는 예약어를 사용할 수 없습니다. 그러나 백틱과 함께 포함하는 것이 올바른 것으로 간주됩니다.

예를 들어 -

create table `insert`

테이블 및 열 이름이 있는 백틱 데모.

mysql> create table `Insert`
   −> (
   −> `Add` int
   −> );
Query OK, 0 rows affected (0.59 sec)

백틱을 사용하면 오류가 발생하지 않습니다.