반응형
예약어를 식별자로 사용해야 하는 경우에는, 데이터베이스 시스템에서 지원하는 기능을 사용하여 이를 회피할 수 있습니다. 예를 들어, MySQL에서는 backtick을 사용하여 예약어를 감싸면 이를 식별자로 사용할 수 있습니다.
DBMS별 사용되는 기호
MySQL 도큐먼트에서는 이를 identifier quote character라고 표기하고 있다.
데이터베이스 | 시스템 열 이름과 테이블 이름 감싸는 기호 |
MSSQL | 대괄호([]) - Brackets |
MySQL, Cubrid | 역따옴표(`) - Backtick |
Oracle, PostgreSQL, Cubrid | 큰따옴표(") - Double quotes |
Backtick 예시
-- 전
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;
Brackets 예시
-- 전
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];
하지만 이러한 방법은 가독성을 떨어뜨리고 오류를 발생시킬 가능성을 높이므로, 되도록이면 예약어를 식별자로 사용하지 않는 것이 좋습니다.
반응형