0

모든 하위 테이블을 잠그지 않고 캐스케이드에서 삭제를 수행하는 방법이 있습니까? 또한 삭제는 하위 테이블의 외래 키가 아닌 키에서 수행됩니다. 하위 키의 외래 키 테이블 indexed.Currently 상황은 삭제는 삽입이오라클 11g의 캐스케이드에서 삭제

감사

솔루션으로
+0

계단식 삭제에는 전체 테이블 잠금이 필요하지 않습니다. 예제 테이블 정의에 제약 조건 및 색인의 세부 정보를 제공해주십시오. –

답변

0

스리랑카

때문에 잠금이 발생하는 것을 허용하지 않습니다 모든 자식 테이블에 잠금을 일어나고있다 될 때 이미 레코드가 삭제되었음을 나타내는 "Y"/ "N"("1"/ "0"등)의 가능한 값을 가진 필드를 추가 할 수 있습니다. 그런 다음 작업을 구축 할 수 있습니다 (it is ok for long term operation)이 프로세스는 백그라운드에서 작동되며, 삭제 된 행을 수집하고 삭제합니다.

두 번째 방법, 거래를 실행하려고하고, 당신이 볼 때 표는 전체 잠금이 실행 가지고 :

ALTER TABLE <<YOUR_LOCKED_TABLE_NAME>> DISABLE TABLE LOCKS 

그런 다음 트랜잭션, 테이블 정말 그렇다면 예외 ORA-00069 마무리한다 잠겨있어 외래 키에 B- 트리 인덱스가 있고 비트 맵 인덱스를 사용하지 않는지 확인해야합니다.

관련 문제