5.14. 의존성 추적#

외국의 주요 제약 조건, 뷰, 트리거, 기능 등이있는 많은 테이블과 관련된 복잡한 데이터베이스 구조를 만들 때 객체간에 종속성의 순을 암시 적으로 만듭니다. 예를 들어, 외국 키 제약 조건이있는 테이블은 참조하는 테이블에 따라 다릅니다.

전체 데이터베이스 구조의 무결성을 보장하려면와이즈 토토다른 객체가 여전히 의존하는 객체를 드롭 할 수 없는지 확인하십시오. 예를 들어, 우리가 고려한 제품 테이블을 삭제하려고섹션 5.4.5에 따라 주문 테이블이있는 경우 다음과 같은 오류 메시지가 발생합니다.

드롭 테이블 제품;

오류 메시지에는 유용한 힌트가 포함되어 있습니다.

드롭 테이블 제품 캐스케이드;

그리고 모든 종속 객체는 재귀 적으로 의존하는 객체와 마찬가지로 제거됩니다. 이 경우 주문 테이블을 제거하지 않고 외래 키 제약 조건 만 제거됩니다.드롭 ... 캐스케이드will do, run드롭없음캐스케이드읽기세부 사항출력.)

거의 모든드롭명령와이즈 토토지원 지정캐스케이드. 물론 가능한 종속성의 특성은 물체의 유형에 따라 다릅니다.제한대신캐스케이드기본 동작을 얻으려면 다른 객체가 의존하는 객체를 삭제하는 것을 방지하는 것입니다.

note

SQL 표준에 따라 어느 쪽이든 지정제한또는캐스케이드at드롭명령. 데이터베이스 시스템은 실제로 해당 규칙을 시행하지 않지만 기본 동작이제한또는캐스케이드시스템마다 다릅니다.

if a드롭명령은 여러 개체를 나열합니다.캐스케이드지정된 그룹 외부에 종속성이있을 때만 필요합니다. 예를 들어, 말할 때드롭 테이블 tab1, tab2외국 키 참조의 존재tab1Fromtab2캐스케이드성공하려면 필요합니다.

신체가 문자열 리터럴로 정의 된 사용자 정의 함수 또는 절차의 경우와이즈 토토인수 및 결과 유형과 같은 함수의 외부가 가시 가능한 속성과 관련된 종속성을 추적하지만not기능 본문을 검사 하여만 알 수있는 종속성. 예를 들어,이 상황을 고려하십시오 :

Enum ( 'Red', 'Orange', 'Yellow'로 유형 무지개를 만듭니다.

(참조43_4 | 토토 핫SQL 언어 함수에 대한 설명.)와이즈 토토get_color_note함수는에 따라 다릅니다.레인보우유형 : 유형을 삭제하면 인수 유형이 더 이상 정의되지 않기 때문에 기능을 삭제합니다. 하지만와이즈 토토고려하지 않을 것입니다get_color_notemy_colors테이블이므로 테이블이 삭제되면 기능이 떨어지지 않습니다. 이 접근법에는 단점이 있지만 이점도 있습니다.

반면에, SQL 언어 기능 또는 신체가 SQL 표준 스타일로 작성된 절차의 경우, 본문은 기능 정의 시간에 구문 분석되며 구식으로 인식되는 모든 종속성은 저장됩니다. 따라서 위의 기능을로 작성하면

함수 생성 get_color_note (Rainbow) 텍스트를 반환합니다

그런 다음 함수의 종속성my_colors테이블은 알려지고 시행됩니다.드롭.

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면