inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Khóa học luyện thi chứng chỉ SQLD

DML - tính toàn vẹn tham chiếu

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

Đã giải quyết

58

kokodaeko1738

7 câu hỏi đã được viết

1

image.png

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

 

 

 

 

 

sql SQLD

Câu trả lời 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 표준에서는 검사 시점 차이가 있다"를 기억하면 안전합니다.

^^ 감사합니다!


실제 FK제약조건을 설정하지 않는이유

0

3

1

Free Edition 실습 영상은 아직 업데이트전인가요?

0

11

1

상품 정보 크롤링

0

21

2

강의에 적용한 스크립트를 받아 볼수 있을까요?

0

35

2

실습소실행안되요

0

30

1

수강기간 연장

0

24

1

BCNF 질문

0

42

2

연관 엔티티 네이밍 규칙

0

36

1

ORA-01017 오류 때문에 진도가 못나가고있습니다.!

0

32

2

히스토리 관련 질문

0

51

2

SSMS 설치 오류

0

46

1

제공된 홈페이지 로그인 ,출력값, 건의사항 오류

1

42

1

최신 하드웨어에서 SQL Express 설치에러 해결법

0

51

1

자료가 남지않은 프로젝트는 어떻게 적어야 할까요?

0

36

2

진짜 강의 듣는거 너무 고문

0

103

1

vs code

0

43

2

맥북용 자료 부탁드립니다.

0

32

2

로그인이 안되네요

0

30

1

수업자료 다운

0

41

2

최종 과제 제출

0

80

3

교재 p.31 실행순서 오류?

0

104

2

제 3정규화 관련 질문

0

47

3

통계 데이터 수정 질문

1

59

2

교안 파일 문제

0

155

1