예약어를 식별자로 사용하기

예약어를 식별자(테이블명, 컬럼명 등)로 사용하는 것은 지양해야 한다. 데이터베이스 시스템에서 예약어는 특별한 의미로 사용되기 때문에, 식별자로 사용하면 예기치 않은 문제가 발생할 수 있다.

불가피하게 사용해야 하는 경우, DBMS별로 지원하는 기호로 감싸면 식별자로 사용할 수 있다.

DBMS별 사용 기호

데이터베이스 시스템기호
MSSQL대괄호([]) — Brackets
MySQL, Cubrid역따옴표(`) — Backtick
Oracle, PostgreSQL, Cubrid큰따옴표(") — Double quotes

예시 (MySQL)

-- 감싸기 전
 
ALTER TABLE user_device_tokens
ADD app_type varchar(20) NOT NULL DEFAULT 'SCHOOL' AFTER ver;
 
-- 감싸기 후
ALTER TABLE `user_device_tokens`
ADD `app_type` varchar(20) NOT NULL DEFAULT 'SCHOOL' AFTER ver;

가독성을 떨어뜨리고 오류 가능성을 높이므로, 되도록이면 예약어를 식별자로 사용하지 않는 것이 좋다.

참고