Database

[MySQL/MariaDB] 예약어가 포함된 컬럼/DB 사용

비번변경 2022. 1. 29. 00:53

SQL는 다른 프로그래밍 언어와 마찬가지로 예약어가 존재하며, 버전이 업그레이드되면서 새로운 예약어가 추가되곤 한다.

때문에 MySQL/MariaDB 등을 업그레이드할 때에는 업그레이드되는 버전에 추가되는 예약어가 기존의 선언된 데이터베이스명, 테이블명, 컬럼명 등으로 사용되고 있지는 않은지 확인 및 조치해야 한다. 업그레이드 후 쿼리 수행 시 컬럼명이 아닌 예약어로 인식되어 아래와 같은 syntax 에러가 발생하기 때문이다.

syntax 에러

order는 데이터를 오름차순, 또는 내림차순으로 정렬하여 출력하기 위한 예약어이다.

 

해결 방법은 어렵지 않다.

 

방법 1.

문제가 되는 데이터베이스명, 테이블명, 컬럼명 등을 수정한다.

 

방법 2.

쿼리 수행 시 문제가 되는 데이터베이스명, 테이블명, 컬럼명 등을 `(grave accent)로 묶는다.

 

예시 )

예시로 위에 에러가 발생했던 쿼리를 수정해보았다.

# AS_IS
ALTER TABLE person ADD COLUMN order int;

# TO_BE
ALTER TABLE person ADD COLUMN `order` int;

예약어인 컬럼명을 `으로 묶기

쿼리가 정상적으로 실행된 모습을 확인할 수 있다.