[Mysql] 제약조건 - Foreign key

[Mysql] 제약조건 - Foreign key updated_at: 2024-08-22 16:28

Mysql 제약조건 - Foreign key

FOREIGN KEY 제약 조건을 설정한 필드를 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해주는 역할을 한다.
외래 키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테이블의 내용을 참조해서 레코드가 입력된다.
즉, FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만든다.
FOREIGN KEY를 설정할 때 참조되는 테이블의 필드는 반드시 UNIQUE나 PRIMARY KEY가 설정되어 있어야 한다.

문법

CREATE TABLE [TABLE NAME]
( 
  ..........,    
  [CONSTRAINT 제약조건이름]    FOREIGN KEY (필드이름)    REFERENCES 테이블이름 (필드이름)
)
CREATE TABLE blog_tags
( 
  .........., 
CONSTRAINT `FK_blog_tags_blogs` FOREIGN KEY (`blog_id`) REFERENCES `blogs` (`id`) ON UPDATE NO ACTION ON DELETE CASCADE
}

변경제약

참조되는 테이블의 값이 수정될 경우의 동작을 ON UPDATE 구문으로 설정 설정

ON UPDATE [RESTRICT | CASCADE | NO ACTION | SET NULL] 

삭제 제약

참조되는 테이블의 값이 삭제될 경우의 동작을 ON DELETE 구문으로 설정

ON DELETE [RESTRICT | CASCADE | NO ACTION | SET NULL] 

RESTRICT

참조하는 테이블에 데이터가 남아 있으면 참조되는 테이블의 데이터를 삭제하거나 수정할 수 없음

CASCADE

참조되는 테이블에서 데이터를 삭제하거나 수정하면 참조하는 테이블에서도 삭제와 수정이 같이 이루어짐

SET NULL

참조되는 테이블에서 데이터를 삭제하거나 수정하면 참조하는 테이블의 데이터는 NULL로 변경됨

NO ACTION

참조되는 테이블에서 데이터를 삭제하거나 수정하면 참조하는 테이블의 데이터는 변경되지 않음

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글