# CASCADE
참조 테이블의 해당 행이 삭제되거나 업데이트될 때, 기본 테이블에서도 해당 행이 삭제 또는 업데이트됨
# on delete cascade 설정
cascade 설정을 하지않았으면 참조 테이블 삭제 불가
child 테이블에서 FOREIGN KEY ~ REFERENCES~ 를 통해 parent 테이블을 참조하고 그 테이블을 참조할 떄 사용할 왜래키 속성을 지정
-- 참조 테이블 생성
CREATE TABLE parent (
pid varchar(255) NOT NULL,
password varchar(255),
CONSTRAINT "parent_pkey" PRIMARY KEY ("pid")
);
-- 기본 테이블 생성
CREATE TABLE child (
cid varchar(255) NOT NULL,
pid varchar(255),
CONSTRAINT "fkey" FOREIGN KEY ("pid") REFERENCES parent("pid")
);
-- insert(참조/기본 테이블 모두)
INSERT INTO parent VALUES('pid1', '1234');
INSERT INTO child VALUES('cid1', 'pid1');
-- on delete cascade (기본 테이블)
ALTER TABLE child DROP CONSTRAINT "fkey",ADD CONSTRAINT "fkey" FOREIGN KEY ("pid") REFERENCES parent("pid") on delete cascade;
-- delete(참조 테이블)
DELETE FROM parent WHERE pid='pid1';
# ON DELETE 옵션
- NO ACTION
- CASCADE
- SET NULL
- SET DEFAULT
( 그 중 CASCADE 사용)
'Database > PostgreSQL' 카테고리의 다른 글
# PostgreSQL upsert (0) | 2020.07.18 |
---|---|
# PostgreSQL 절차형SQL_for문_insert (0) | 2020.07.05 |
PostgreSQL Auto_increment(varchar) (0) | 2020.07.02 |
# PostgreSQL DB생성시간(varchar) (0) | 2020.07.02 |
# PostgreSQL 명령어 정리 (0) | 2020.07.02 |