oracle truncate 예제

이 문서의 예제에서는 다음 테이블이 있어야 합니다. 릴리스 11.2 에서 truncate 디스크에 테이블에 의해 사용 되는 모든 세그먼트 공간을 제거할 수 있도록 향상 되었습니다. 즉, 테이블을 트렁킹하고 테이블과 연결된 모든 공간을 제거하여 테이블이 행을 다시 수락하기 시작할 때까지 공간을 축소할 수 있습니다. 이 예제에서는 월(MM)을 분기별(Q)으로 대체했습니다. MATERIALIZED VIEW LOG 절을 사용하면 테이블에 정의된 구체화된 뷰 로그를 테이블이 잘릴 때 보존또는 제거할지 여부를 지정할 수 있습니다. 기본적으로 재질 뷰 로그는 유지됩니다. Oracle 12c는 TRUNCATE TABLE 명령의 CASCADE 절을 도입하여 계승계층에서 테이블을 재귀적으로 잘릴 수 있도록 했습니다. 이 기능을 사용하려면 ON DELETE CASCADE 절을 사용하여 관련된 모든 참조 무결성 제약 조건을 정의해야 합니다. 다음 예제에서는 EMPLOYEES 테이블에서 모든 행을 삭제 한 다음 삭제를 취소 하는 ROLLBACK을 발급 합니다.

STORAGE 절을 사용하면 잘린 행 및 연결된 인덱스(있는 경우)에 의해 해제된 저장소를 놓거나 다시 사용할 수 있습니다. 기본적으로 저장소가 삭제됩니다. 이러한 테이블은 SCOTT 스키마의 EMP 및 DEPT 테이블의 변형입니다. SCOTT 스키마의 테이블을 사용하여 인터넷에서 많은 Oracle 예제를 볼 수 있습니다. “$ORACLE_HOME/rdbms/관리자/utlsampl.sql” 스크립트에서 원래 테이블 정의를 찾을 수 있습니다. 트렁킨 테이블 … CASCADE 명령은 성공하고 모든 종속 테이블을 재귀적으로 잘입니다. ON DELETE CAS 관계의 존재는 종속 자식 레코드가 자동으로 삭제된 모든 테이블에서 삭제할 수 있도록 합니다. 다음 삭제 예제의 CASCADE 키워드는 실제로 필요하지 는 않지만 재귀 삭제가 예상되는 다른 개발자를 상기시키는 데 사용하는 것이 좋습니다. 이 경우 TRUNCATE TABLE CASCADE 문은 table_name에서 모든 행을 삭제하고 체인의 연결된 테이블을 재귀적으로 잘린다. 오라클은 큰 테이블에서 모든 행을 삭제할 수 있는 TRUNCATE TABLE 문을 도입했습니다.

뷰와 연결된 기본 테이블에서 삭제할 수 있습니다. 이와 관련 된 몇 가지 제한 사항이 있습니다., 하지만 그들은 초보자 수준의 문서에 대 한 범위에서 조금. 다음 예제에서는 EMPLOYEES 테이블에 간단한 보기를 만든 다음 이를 통해 삭제합니다. 다음 예제에서는 테이블의 행 수를 확인하고 TRUNCATE TABLE 문을 실행하고 즉시 ROLLBACK을 실행하고 테이블의 행 수를 다시 확인합니다. 출력에서 볼 수 있습니다. Oracle TRUNCATE 문은 DDL 명령이며 롤백 데이터를 생성하지 않으므로 DELETE 명령보다 빠릅니다. 클러스터된 테이블에서 Oracle TRUNCATE를 사용하는 경우 데이터는 하나의 테이블이 아니라 전체 클러스터에서 제거되어야 합니다.