오라클이 제약 조건을 삭제/재작성하지 않고 캐스케이드 삭제를 수행하도록 강제하는 방법
저는 부모 테이블을 가지고 있는데, 그 테이블에는 12개의 자식 테이블이 그것을 참조하고 있습니다.이러한 하위 테이블에는 해당 하위 테이블을 참조하는 다른 하위 테이블이 있습니다.등등.
주 상위 테이블에서 행을 삭제하고 계속 계단식으로 연결해야 합니다.
제약 조건을 "ON CASCADE DELETE"로 만들기 위해 모든 곳에서 제약 조건을 삭제/재작성하는 것은 옵션이 아닙니다.
모든 항목을 검토하고 하위 행을 수동으로 삭제하는 것은 악몽입니다.
다른 방법은?
DELETE 문에는 계단식으로 만들기 위한 매개 변수가 없습니다.
사용자를 사용자로 지정할 수 있습니다.ON CASCADE DELETE
또는 여러 개의 개별 삭제를 올바른 순서로 실행합니다.
테이블 구조를 조사하고 이를 기반으로 일련의 삭제 기준을 생성하는 '스마트 삭제' 절차를 작성할 수 있지만, 이는 별도의 삭제를 작성하는 것보다 더 많은 작업과 악몽이 될 수 있습니다.그리고 이것이 작동하기 위해서는 그러한 제약이 있어야 합니다. 현실적으로 항상 바람직한 것은 아닙니다.
저는 오라클에서 이러한 문제를 해결했습니다. 한 분기에서 다른 대상으로 데이터를 병합한 다음 원본 대상을 삭제하기 위해 일부러 수행한 응용 프로그램입니다.
https://sites.google.com/site/keytreechanger/Home https://sites.google.com/site/keytreechanger/Home/screenshots
견적서
예를 들어 이 오류가 발생하면 클라이언트 Pedrus Root(내부 키 표현 #R=111)는 Petrus Root(#R=1987)와 동일합니다.222 이하의 데이터를 111로 이동한 후 222 지점을 삭제합니다.
KTC는 모든 관련 데이터베이스 테이블에서 이 사례와 관련된 모든 데이터(그리고 해결해야 할 몇 가지 사례)를 스마트하게 수집합니다.
이 알고리즘은 필요한 곳만 검색하고 사용 가능한 모든 키 구성 요소를 사용합니다.
모든 데이터의 백업은 감사 목적으로 로컬로 유지 관리됩니다.로컬 리포지토리는 테이블/필드 정의의 변경사항을 수용하기 위해 투명하게 진화합니다.파워 유저는 테이블/관계 트리를 시각적으로 검사하며, 모든 테이블의 데이터를 보고/인쇄/편집할 수 있으며, 예상되는 동작(컷, 컷, 페이스트 또는 완료)을 선택적으로 수정할 수 있습니다.
마지막으로 KTC는 이 특정 사례를 해결하기 위해 수백 줄의 삽입, 업데이트 및 수정 코드 삭제를 생성합니다. 다음으로 끝나는 적절한 순서로 나열됩니다.
합니다. 서 #rootTable은 파일 이름입니다. 여기서 #R=가 표시됩니다.
그리고 나서, 나는 사용자들과 온라인으로 코드를 적용합니다.
이 경우 필터는 라인을 제외한 모든 라인을 제거해야 합니다.
AFAIK 시장에는 이와 동등한 응용 프로그램이 없습니다.
언급URL : https://stackoverflow.com/questions/13881447/how-to-force-oracle-to-do-cascade-delete-without-dropping-recreating-constraints
'source' 카테고리의 다른 글
Wi-Fi를 통해 Android 응용 프로그램을 실행/설치/디버깅하시겠습니까? (0) | 2023.07.10 |
---|---|
spring-boot-starter-web의 기본 JSON 오류 응답은 어디에서 왔으며 어떻게 조정합니까? (0) | 2023.07.10 |
Java가 Sun/Oracle/OpenJDK인지 어떻게 알 수 있습니까? (0) | 2023.07.10 |
vuex와 v-bind:class를 함께 작동할 수 없습니다. (0) | 2023.07.10 |
C++에서는 여러 개의 사전 증분이 허용되지만 C에서는 허용되지 않는 이유는 무엇입니까? (0) | 2023.07.10 |