해결된 질문
작성
·
10
답변 1
0
안녕하세요!
좋은 질문 감사합니다!
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 표준에서는 검사 시점 차이가 있다"를 기억하면 안전합니다.
^^ 감사합니다!