inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

SQLD 자격대비 과정

DML - 참조무결성

외래키 제약조건-참조동작 질문

해결된 질문

64

kokodae.ko

작성한 질문수 7

1

image.png

이부분에서 노액션은 참조무결성을 위반하는 경우에 지우지 못하는거라서 만일 부모테이블에서 특정 PK값을 지우는데 자식테이블에 그 PK값이 없다면 부모테이블에서 지울수 있지 않나요? RESTRICT과 동일하게 작용하는거 아닌가 싶어서요..

 

 

 

 

 

sql SQLD

답변 1

0

SoYoung Yoon

안녕하세요!
좋은 질문 감사합니다!

NO ACTION은 RESTRICT와 유사하지만 제약조건 검사 시점이 다릅니다.
SQL 표준에서는

  • NO ACTION : 참조 무결성을 트랜잭션 종료 시점(COMMIT시)에서 확인

  • RESTRICT: 참조 무결성을 즉시 검사(DELETE/UPDATE 실행 시)

외래키 제약조건을 검사할 때 즉시 위반 여부를 확인하지 않고, 트랜잭션이 끝날 때(즉 COMMIT 시점)에 검사합니다.

그러나, SQL Server 에서는 NO ACTION이 즉시 검사되고 (RESTRICT와 동일)
Oracle에서도 NO ACTION이 즉시 검사되고, RESTRICT가 지원되지 않아 말씀하신 것과 같이 NO ACTION이 RESTRICT와 동일하게 처리됩니다.

실무에서는 "둘이 같다"라고 이해하면 되고, 시험이나 자격증 공부할 때 SQL 표준이론에서만 "SQL 표준에서는 검사 시점 차이가 있다"를 기억하면 안전합니다.

^^ 감사합니다!


모바일 앱 쿠폰

0

20

1

SQL 기본 문법

0

22

2

1:N 관계에서 중간테이블 (연관엔티티)

0

23

1

dvdrental 서버에 접속할 수 없어요

0

20

1

속성 핵집문제 2번

1

27

2

chapter 2 단원정리문제 49번

1

28

2

공통코드 관련한 질문 드립니다.

0

30

0

extract 함수 관련 질문

1

29

2

백업파일이 안보입니다.

0

23

1

최신버젼 다운로드

0

35

2

IN 사용방법 문의

0

23

1

다음 강의는 언제 올려주시는지요?

0

48

2

리뷰를 가장 많이 작성한 회원들 조회

0

32

2

회사 내 AI 툴 사용에 대한 질문

0

37

1

일대일 fk 위치

0

33

1

GROUP BY, HAVING 실습 1번문제

1

39

2

2강에 파일 어디있을까여,,

0

30

2

다음 강의는 언제쯤 나올까요?

0

66

2

땃지님 실습소 DB서버 확인 부탁드립니다

0

36

2

마인드맵 사용 프로그램

1

34

1

엔터티 종류

0

32

2

제 3 정규형 vs BCNF 정규형 차이점?

0

62

3

GROUP BY 시 인덱스를 타지 않는 이유가 궁금합니다

0

24

1

교안 파일 문제

0

158

1