Database/SQL

[SQL] DELETE FROM 테이블 ~

서리★ 2024. 5. 20. 16:39

테이블을 생성 시에 기존 테이블을 참고하여 만들면 기존 테이블 삭제 시 옵션에 따라 삭제되기도 하는데...

 

 

CREATE TABLE 테이블 (

   컬럼 데이터타입 REFERENCES 참조테이블(컬럼) ON DELETE CASCADE

);

-> 참조테이블 데이터 삭제 시, 같이 삭제 됨 

 

CREATE TABLE 테이블 (

   컬럼 데이터타입 REFERENCES 참조테이블(컬럼) ON DELETE SET NULL

);

-> 참조테이블 데이터 삭제 시, NULL로 설정

 

CREATE TABLE 테이블 (

   컬럼 데이터타입 REFERENCES 참조테이블(컬럼) ON DELETE SET DEFAULT

);

-> 참조테이블 데이터 삭제 시, 기본값으로 설정

 

 

 

DELETE/MODIFY

- CASCADE

- SET NULL

- SET DEFAULT

- RESTRICT : 자식 테이블에 외래키의 값이 없는 경우만 부모테이블에서 삭제 허용

- NO ACTION : 참조 무결성을 위반하는 삭제/수정 액션을 취하지 않음

 

 

DELETE | DROP | TRUNCATE 비교

롤백 가능 | 롤백 불가 | 롤백 불가

수동 커밋 | 자동 커밋 | 자동 커밋

데이터만 삭제 | 정의 자체 삭제 | 테이블 최초 초기 상태로 변경