새소식

⇥ DevOps Tech 🙋🏻‍♀️/✏️ ORACLE

[ORACLE] 기존 테이블을 이용하는 테이블 생성 / CTAS

  • -
반응형

기존 TABLE 을 복사하는 방법

CREATE TABLE CTAS_TABLE
AS
SELECT * FROM TABLE;

 


CREATE TABLE ~ AS SELECT ~ 구문을 사용하게 되면 TABLE 의 컬럼과 행을 모두 복사해서 CTAS_TABLE 을 생성

이러한 방법을 CTAS 라고 언급하며 CTAS로 생성한 테이블은 결국 테이블 이름만 다를 뿐 동일한 테이블이 생성된다.


전체 데이터가 아닌 원하는 데이터만 복사해서 테이블을 생성하는 방법

 

CREATE TABLE CTAS_TABLE
AS
SELECT * FROM TABLE
WHERE 데이터 = 10 ;

CTAS 구문에서 WHERE 절이 추가된 형태, 조건이 일치하는 데이터만 복사해서 테이블을 생성한다.

위 구문에서는 데이터 = 10 인 데이터만 복사하여 테이블이 생성되게 된다.

이를 응용해서 항상 거짓인 조건을 넣어주게 되면 데이터는 제외하고 테이블의 형식만 복사할 수 있다.


원하는 컬럼만 복사해서 테이블을 생성하는 방법

CREATE TABLE CTAS_TABLE
AS
SELECT 컬럼1, 컬럼2, 컬럼3
FROM TABLE;

TABLE 에서 컬럼1, 컬럼2, 컬럼3 의 컬럼과 각 컬럼의 데이터를 복사해서 테이블을 생성한다.


CTAS 활용과 주의사항

  • 테이블의 형식만 복사하기 위한 마이그레이션 작업에 사용된다.
  • 기존 테이블의 데이터를 새로 생성하기 위해 테이블 재구성에 사용된다.
  • 기존 테이블이 가지고있는 기본값, 제약조건, 인덱스 등은 복사할 수 없다.
  • 파티션 테이블일 경우엔 일반 테이블로 복사된다.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.