2025 년 7 월 17 일 : | 와이즈 토토 18 베타 2 릴리스!

5.14. 의존성 추적#

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

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

드롭 테이블 제품;

오류 : 다른 객체가 그것에 의존하기 때문에 테이블 제품을 삭제할 수 없습니다.
세부 사항 : 제약 조건 Orders_Product_no_fkey 테이블 주문에 따라 테이블 제품에 따라 다릅니다.
힌트 : Drop ... Cascade를 사용하여 종속 객체를 떨어 뜨립니다.

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

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

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

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

Note

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

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

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

Enum ( 'Red', 'Orange', 'Yellow'로 유형 무지개를 만듭니다.
                             '녹색', '파란색', '보라색');

테이블 my_colors (색상 무지개, 참고 텍스트)를 만듭니다.

함수 생성 get_color_note (Rainbow) 텍스트를 반환합니다
  'color = $ 1'인 my_colors에서 메모를 선택하십시오.
  언어 SQL;

(참조43_4 | 토토 핫SQL 언어 함수에 대한 설명.)와이즈 토토get_color_note함수는에 따라 다릅니다.레인보우유형 : 인수 유형이 더 이상 정의되지 않기 때문에 유형을 삭제하면 기능이 삭제됩니다. 하지만와이즈 토토고려하지 않을 것입니다get_color_note에 의존하려면my_colors테이블이므로 테이블이 삭제되면 기능이 떨어지지 않습니다. 이 접근법에는 단점이 있지만 이점도 있습니다. 테이블이 누락 된 경우 기능이 여전히 유효하지만 실행하면 오류가 발생합니다. 같은 이름의 새 테이블을 만들면 기능이 다시 작동 할 수 있습니다.

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

함수 생성 get_color_note (Rainbow) 텍스트를 반환합니다
원자를 시작하십시오
  색상 = $ 1 인 my_colors에서 메모를 선택하십시오.
끝;

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

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면