Oracle CREATE TABLE AS SELECT (CTAS)유의사항

1. Constraint

참조된 테이블의 6가지 Constraint 중

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • REF

오로지 NOT NULL Constraint만 복사됨.
따라서 제약조건을 추가하기 위해서는 CTAS 이후 ALTER TABLE ~ 입력 필요.

 

2. WHERE 1=2

CREATE TABLE  *
AS
SELECT column1, column2, column3
FROM table1
WHERE 1=2;

WHERE 1=2가 의미하는 바는 FALSE.
따라서 위 SQL Statement 실행 시 데이터가 없는 테이블이 생성됨.

테이블 구조만 복사 원할 시 활용 가능
(NOT NULL 제외한 Constraint는 추가 설정 필요)

 

출처 :
https://docs.oracle.com/database/121/SQLRF/clauses002.htm#SQLRF52180
http://www.orafaq.com/wiki/CTAS

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중