PostgreSQL 테이블 종속성 추적
전체 데이터베이스 구조의 완전성을 확보하기 위해서 PostgreSQL은 다른 대상에 의존하는 대상을 삭제할 수 없습니다.예를 들어, 에서 주문서에 의존하는 제품 테이블을 삭제하려는 시도는 성공할 수 없으며 다음과 같은 오류 메시지가 나타납니다.
DROP TABLE products;
NOTICE: constraint orders_product_no_fkey on table orders depends on table products
ERROR: cannot drop table products because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.
이 오류 메시지는 모든 의존 대상을 번거롭게 각각 삭제하고 싶지 않으면 실행할 수 있는 유용한 힌트를 포함하고 있습니다.DROP TABLE products CASCADE;
그리고 모든 의존 대상은 삭제됩니다. (주문서는 삭제하지 않고 키 제약만 삭제합니다.)DROP을 검사하고 싶다면...CASCADE는 무엇을 할 것인가, CASCADE가 없는 DROP을 실행하고 NOTICE 메시지를 읽는다.PostgreSQL의 모든 삭제 명령은 CASCADE 선언을 지원합니다.물론 구체적인 의존성 실체는 대상의 유형에 달려 있다.부족한 행동을 얻기 위해 CASCADE가 아닌 RESTRICT를 쓸 수도 있습니다. (다른 대상이 의존하는 대상을 삭제하는 것을 방지합니다.)
참고: SQL 표준에 따라 RESTRICT 또는 CASCADE 중 하나 이상을 선언해야 합니다.실제로 어떤 데이터베이스 시스템도 이 점을 강제하지 않지만, 기본적인 행동이 RESTRICT인지 CASCADE인지는 시스템에 따라 다르다.
참고: PostgreSQL 7.3 이전의 외부 키 제약조건 의존성과 시퀀스 필드 의존성은 업그레이드 과정에서 유지보수되거나 만들어지지 않습니다.모든 기타 의존성 유형은 7.3 버전 이전의 데이터베이스 업그레이드 과정에서 적절하게 만들어질 것이다.
전재 대상:https://www.cnblogs.com/wolaiye320/p/5601790.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.