DataBase

MySQL Foregin Key 설정

Beencle 2023. 3. 20. 15:02
CREATE TABLE 테이블이름(
    ...,
    [CONSTRAINT 제약조건이름]
    FOREIGN KEY (필드이름)
    REFERENCES 테이블이름 (필드이름));
ALTER TABLE 테이블이름 ADD [CONSTRAINT 제약조건이름] FOREIGN KEY (필드이름)
REFERENCES 테이블이름 (필드이름)

ON DELETE, ON UPDATE

- 외래키로 참조되는 값이 변경이 되거나 삭제가 된다면 이를 참조하는 테이블의 값 역시 변화가 있어야하는데 이를 설정하는 방법

외래키 생성할 때 위에 추가 해주면 된다.

CASCADE 참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블에서도 삭제와 수정이 같이 이루어집니다.
SET NULL 참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블의 데이터는 NULL로 변경됩니다.
NO ACTION  참조되는 테이블에서 데이터를 삭제하거나 수정해도, 참조하는 테이블의 데이터는 변경되지 않습니다.
SET DEFAULT 참조되는 테이블에서 데이터를 삭제하거나 수정하면, 참조하는 테이블의 데이터는 필드의 기본값으로 설정됩니다.
RESTRICT 참조하는 테이블에 데이터가 남아 있으면, 참조되는 테이블의 데이터를 삭제하거나 수정할 수 없습니다.