모든 하위 테이블을 잠그지 않고 캐스케이드에서 삭제를 수행하는 방법이 있습니까? 또한 삭제는 하위 테이블의 외래 키가 아닌 키에서 수행됩니다. 하위 키의 외래 키 테이블 indexed.Currently 상황은 삭제는 삽입이오라클 11g의 캐스케이드에서 삭제
감사
솔루션으로모든 하위 테이블을 잠그지 않고 캐스케이드에서 삭제를 수행하는 방법이 있습니까? 또한 삭제는 하위 테이블의 외래 키가 아닌 키에서 수행됩니다. 하위 키의 외래 키 테이블 indexed.Currently 상황은 삭제는 삽입이오라클 11g의 캐스케이드에서 삭제
감사
솔루션으로때문에 잠금이 발생하는 것을 허용하지 않습니다 모든 자식 테이블에 잠금을 일어나고있다 될 때 이미 레코드가 삭제되었음을 나타내는 "Y"/ "N"("1"/ "0"등)의 가능한 값을 가진 필드를 추가 할 수 있습니다. 그런 다음 작업을 구축 할 수 있습니다 (it is ok for long term operation)이 프로세스는 백그라운드에서 작동되며, 삭제 된 행을 수집하고 삭제합니다.
두 번째 방법, 거래를 실행하려고하고, 당신이 볼 때 표는 전체 잠금이 실행 가지고 :
ALTER TABLE <<YOUR_LOCKED_TABLE_NAME>> DISABLE TABLE LOCKS
그런 다음 트랜잭션, 테이블 정말 그렇다면 예외 ORA-00069
마무리한다 잠겨있어 외래 키에 B- 트리 인덱스가 있고 비트 맵 인덱스를 사용하지 않는지 확인해야합니다.
계단식 삭제에는 전체 테이블 잠금이 필요하지 않습니다. 예제 테이블 정의에 제약 조건 및 색인의 세부 정보를 제공해주십시오. –