oracle truncate 예제

By 2019. augusztus 2. Egyéb kategória No Comments

데이터베이스는 Oracle TRUNCATE 문을 사용하여 실제로 행을 삭제하지 않지만 Oracle TRUNCATE를 사용하면 높은 워터 마크를 재설정하여 테이블 정의를 빈 테이블로 재설정합니다. Oracle TRUNCATE 문의 특성으로 인해 데이터베이스는 실제로 이전 행을 검색할 수 없습니다. 잘린 테이블이 커지기 시작하면 이전 행이 작성된 공간이 새 행으로 덮어씁니다. 커밋되지 않은 변경 내용을 유지하지 않으려면 ROLLBACK 문을 사용하여 취소할 수 있습니다. 이 문서의 많은 예제에서는 테스트 후 ROLLBACK 문을 발행하여 데이터를 원래 상태로 되돌릴 수 있습니다. 이러한 테이블은 SCOTT 스키마의 EMP 및 DEPT 테이블의 변형입니다. SCOTT 스키마의 테이블을 사용하여 인터넷에서 많은 Oracle 예제를 볼 수 있습니다. “$ORACLE_HOME/rdbms/관리자/utlsampl.sql” 스크립트에서 원래 테이블 정의를 찾을 수 있습니다. Oracle TRUNCATE 문은 DDL 명령이며 롤백 데이터를 생성하지 않으므로 DELETE 명령보다 빠릅니다.

클러스터된 테이블에서 Oracle TRUNCATE를 사용하는 경우 데이터는 하나의 테이블이 아니라 전체 클러스터에서 제거되어야 합니다. 테이블의 참조 무결성 제약 조건을 사용하지 않도록 설정해야 잘릴 수 있습니다. 테이블 DROP과 마찬가지로 잘림은 복구할 수 없습니다. 테이블이 잘린 경우 실수를 한 경우 롤백할 수 없습니다. 오라클 트렁킨을 신중하게 사용하십시오. 이 경우 TRUNCATE TABLE CASCADE 문은 table_name에서 모든 행을 삭제하고 체인의 연결된 테이블을 재귀적으로 잘린다. MATERIALIZED VIEW LOG 절을 사용하면 테이블에 정의된 구체화된 뷰 로그를 테이블이 잘릴 때 보존또는 제거할지 여부를 지정할 수 있습니다. 기본적으로 재질 뷰 로그는 유지됩니다. 뷰와 연결된 기본 테이블에서 삭제할 수 있습니다. 이와 관련 된 몇 가지 제한 사항이 있습니다., 하지만 그들은 초보자 수준의 문서에 대 한 범위에서 조금.

다음 예제에서는 EMPLOYEES 테이블에 간단한 보기를 만든 다음 이를 통해 삭제합니다. 이 예제에서는 월(MM)을 분기별(Q)으로 대체했습니다. 이 문서의 예제에서는 다음 테이블이 있어야 합니다. 오라클은 큰 테이블에서 모든 행을 삭제할 수 있는 TRUNCATE TABLE 문을 도입했습니다. ON DELETE CAS 관계의 존재는 종속 자식 레코드가 자동으로 삭제된 모든 테이블에서 삭제할 수 있도록 합니다. 다음 삭제 예제의 CASCADE 키워드는 실제로 필요하지 는 않지만 재귀 삭제가 예상되는 다른 개발자를 상기시키는 데 사용하는 것이 좋습니다. 트렁킨 테이블 … CASCADE 명령은 성공하고 모든 종속 테이블을 재귀적으로 잘입니다. 다음 예제에서는 EMPLOYEES 테이블에서 모든 행을 삭제 한 다음 삭제를 취소 하는 ROLLBACK을 발급 합니다. Oracle 12c는 TRUNCATE TABLE 명령의 CASCADE 절을 도입하여 계승계층에서 테이블을 재귀적으로 잘릴 수 있도록 했습니다.