[MSSQL 참조키(Foreign Key) 설정하기]
참조키(외래키)는 데이타의 참조 무결성을 유지하기 위한 필수 조건으로 아래와 같은 특성을 가집니다.
[ 참조키의 특성 ]
1. 참조되는 테이블의 PRIMARY KEY나 UNIQUE 제약 또는 UNIQUE INDEX가 지정된 컬럼만을 참조할 수 있습니다. 2. 참조키를 만들어도 자동적으로 색인이 만들어 지지 않습니다. 색인이 필요하면 직접만들어 써야 하며, 조인에 참여하는 참조키는 쿼리 속도를 고려한다면 색인을 만들어 두는것이 좋습니다. 3. 참조키는 참조되는 테이블의 여러 컬럼을 참조할 수 있습니다. 간단히 말하면 참조되는 테이블에서 여러 컬럼이 모인 복합키(COMPOSITE KEY)가 사용되고 이를 참조한다면 너무나 당연한 것이겠죠? 4. 참조키가 설정되면 실수로 데이타를 삭제하거나 변경하는 것을 방지할 수 있습니다. 참조키를 정의하는 기본형식은 아래와 같습니다. |
[CONSTRAINT constraint_name] [FOREIGN KEY] [(column[,...n])] REFERENCES ref_table [(ref_column[,...n])] [ON DELETE { CASCADE | NO ACTION } ] [ON UPDATE { CASCADE | NO ACTION } ] |
constraint_name : 제약조건의 이름으로 데이타베이스 내에서 유일해야 합니다.
ref_table : 참조되는 테이블 이름입니다.
ref_column : 참조되는 컬럼또는 컬럼들입니다.
NO ACTION : 참조되는 테이블의 행이 삭제 또는 수정되었을 경우 SQLServer에서는 오류 메시지를 띄우고,
해당 작업은 롤백(RollBack)됩니다.
CASCADE : 참조되는 테이블의 행이 삭제 또는 수정되었을 경우 이를 참조하는 테이블에서
자동으로 변경되도록 설정하는 옵션입니다. 옵션을 지정하지 않으면 디폴트는 NO ACTION 입니다.
'[개발] DataBase Tool SAP > 1. MS_SQL' 카테고리의 다른 글
Identity 시퀀스 생성에 대한 내용 (0) | 2020.05.28 |
---|---|
MS-SQL 프로시저 실행 파일 (0) | 2020.05.25 |
05. MSSQL 테이블 생성 복사 방법 (0) | 2019.06.27 |
04. MSSQL 날짜구하는 방법 (0) | 2019.06.27 |
03. MSSQL_디스크립션_(상세) 조회 (0) | 2019.06.27 |