SQL : 2011 사양
이 다섯 개 옵션이 있습니다 ON DELETE
, 그리고 ON UPDATE
그것은에 적용 할 수 있습니다 FOREIGN KEY
. 이것들은 <referential actions>
SQL : 2011 스펙에서 직접 호출 됩니다.
ON DELETE CASCADE
: 참조 된 테이블의 행이 삭제되면 참조 테이블의 일치하는 모든 행이 삭제됩니다.
ON DELETE SET NULL
: 참조 테이블의 행이 삭제되면 참조 테이블의 모든 일치하는 행의 모든 참조 열이 널로 설정됩니다.
ON DELETE SET DEFAULT
: 참조 테이블의 행이 삭제되면 참조 테이블의 모든 일치하는 행의 모든 참조 열이 열의 기본값으로 설정됩니다.
ON DELETE RESTRICT
: 참조 테이블에 해당 행이 일치하는 행이 있으면 참조 테이블의 행을 삭제할 수 없습니다.
ON DELETE NO ACTION
(기본값) : 참조 삭제 동작이 없습니다. 참조 제한 조건은 제한 조건 점검 만 지정합니다.
외래 키는 종속 관계를 설정합니다. <referential action>
관계가 해산 될 때 발생 하는 사항을 결정합니다.
예 / 은유 / 설명
모든 어디 :이 예를 들어, 우리는 사회와 경제의 일반적인 모델을 수락 business
받는 관계를 유지하는 회사입니다 bourgeoisie
스루 fatcat_owner
.
CREATE TABLE bourgeoisie(
fatcat_owner varchar(100) PRIMARY KEY
);
INSERT INTO bourgeoisie(fatcat_owner) VALUES
( 'Koch Brothers' );
CREATE TABLE business (
name varchar(100),
fatcat_owner varchar(100) REFERENCES bourgeoisie
);
INSERT INTO business(name, fatcat_owner)
VALUES ('Georgia-Pacific', 'Koch Brothers');
모든 business
ES가 bourgeoisie
그들 에 의해 직접 영향을받는 다면 fatcat_owner
, 노동자 혁명 이후에 당신은 fatcat_owner
사회 를 정화하고 계급없는 사회를 가질 때 무엇을합니까?
-- Viva la revolución
BEGIN;
DELETE FROM bourgeoisie;
END;
여기 몇 가지 옵션이 있습니다.