예약어를 식별자로 사용하기
예약어를 식별자(테이블명, 컬럼명 등)로 사용하는 것은 지양해야 한다. 데이터베이스 시스템에서 예약어는 특별한 의미로 사용되기 때문에, 식별자로 사용하면 예기치 않은 문제가 발생할 수 있다.
불가피하게 사용해야 하는 경우, 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;가독성을 떨어뜨리고 오류 가능성을 높이므로, 되도록이면 예약어를 식별자로 사용하지 않는 것이 좋다.