| 사설 토토 9.3.25 문서 | ||||
|---|---|---|---|---|
| 토토 커뮤니티 : 문서 : 9.3 : 기타 데이터베이스 개체 | 스포츠 토토 베트맨 : 문서 : 9.3 : 데이터 정의 | 5장. 데이터 정의 | 배트맨 토토 : 문서 : 9.3 : 데이터 조작 | |
여러 가지가 포함된 복잡한 데이터베이스 구조를 생성할 때 외래 키 제약 조건, 뷰, 트리거, 함수가 포함된 테이블 등. 당신은 암시적으로 객체. 예를 들어 외래 키 제약 조건이 있는 테이블은 참조하는 테이블에 따라 다릅니다.
전체 데이터베이스 구조의 무결성을 보장하려면,포스트그레SQL다음을 확인하세요. 다른 객체가 여전히 의존하고 있는 객체는 삭제할 수 없습니다. 에 대한 예를 들어, 우리가 고려한 제품 테이블을 삭제하려고 시도합니다.섹션 5.3.5, 그에 따른 주문 테이블을 사용하면 다음과 같은 결과가 발생합니다. 다음과 같은 오류 메시지가 나타납니다:
드롭 테이블 제품; 오류: 다른 객체가 테이블 제품에 의존하기 때문에 테이블 제품을 삭제할 수 없습니다. DETAIL: 테이블 주문에 대한 Orders_product_no_fkey 제한은 테이블 제품에 따라 다릅니다. 힌트: 종속 개체도 삭제하려면 DROP ... CASCADE를 사용하세요.
오류 메시지에는 유용한 힌트가 포함되어 있습니다: 원하지 않는 경우 모든 종속 객체를 개별적으로 삭제해야 합니다. 실행:
DROP TABLE 제품 캐스케이드;
그리고 모든 종속 개체가 제거됩니다. 이 경우에는 주문 테이블은 제거하지 않고 외래 키만 제거합니다. 제약. (무엇인지 확인하고 싶다면삭제 ... 캐스케이드할 것이다, 달리다드롭없이캐스케이드그리고 읽어보세요세부정보출력.)
전체드롭명령사설 토토지원 지정캐스케이드. 물론 가능한 성격상 종속성은 개체 유형에 따라 다릅니다. 쓸 수도 있습니다제한대신에캐스케이드기본 동작을 얻으려면 다른 객체가 의존하는 객체의 삭제를 방지합니다.
참고:SQL 표준에 따라 다음 중 하나를 지정제한또는캐스케이드a에서 필요합니다.드롭명령. 실제로 시행되는 데이터베이스 시스템은 없습니다. 해당 규칙이지만 기본 동작은 다음과 같습니다.제한또는캐스케이드다양함 시스템 전반에 걸쳐.
사용자 정의 함수의 경우,사설 토토다음과 관련된 종속성을 추적합니다. 인수와 같은 함수의 외부에서 볼 수 있는 속성 및 결과 유형이지만아님함수를 검사해야만 알 수 있는 종속성 몸. 예를 들어 다음 상황을 고려해보세요.
CREATE TYPE 레인보우 AS ENUM('빨간색', '주황색', '노란색',
'녹색', '파란색', '보라색');
CREATE TABLE my_colors(무지개 색상, 메모 텍스트);
CREATE FUNCTION get_color_note(무지개) 텍스트를 AS로 반환합니다.
'색상 = $1인 my_colors에서 메모 선택'
언어 SQL;
(참조503 토토 베이 페치 실패에 대한
SQL 언어 함수에 대한 설명입니다.)사설 토토다음을 알게 될 것입니다get_color_note함수는 다음에 따라 다릅니다.무지개type: 유형을 삭제하면 강제로 삭제됩니다.
함수의 인수 유형이 더 이상 정의되지 않기 때문입니다.
하지만포스트그레SQL고려하지 않을 것입니다get_color_note의존하다my_colors테이블이므로 삭제되지 않습니다.
테이블이 삭제된 경우의 함수입니다. 단점이 있는 반면
이 접근 방식에는 이점도 있습니다. 기능은 아직
테이블이 누락된 경우에도 어떤 의미에서는 유효합니다.
오류가 발생합니다. 같은 이름의 새 테이블을 생성하면
기능이 다시 작동하도록 허용하세요.