테이블 복사
/*
테이블 복사 - 제약조건 복사안됨.
프로젝트를 하다 보면 기존에 있는 테이블을 복사해서 사용할 경우가 발생한다.
예를 들어, 사용하고 있는 기존 테이블의 테이블의 구조를 자주 변경한다면 미리 복사해 만들어 테스트해보거나,
테이블 데이터 자체를 백업용으로 만들어 놓을 수도 있다.
CREATE TABLE [스키마.]테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 복사할 테이블명;
*/
CREATE TABLE ex2_9_1
AS
SELECT *
FROM ex2_9;
CREATE TABLE ex2_9_bak
AS
SELECT * FROM ex2_9;
SELECT * FROM ex2_9_bak;
INSERT INTO ex2_9 VALUES(100, 'MALE'); -- 제약조건으로 데이타 삽입에러
INSERT INTO ex2_9_bak VALUES(100, 'MALE'); -- 제약조건이 복사되지 않아서, 데이타 삽입성공.
--테이블 복사 실습예제
CREATE TABLE t2 (
num1 number primary key
);
INSERT INTO t2 VALUES(1);
SELECT * FROM t2;
--1)테이블 복사시 제약조건은 복사되지 않는다.
CREATE TABLE t2_bak
AS
SELECT * FROM t2;
--2)
SELECT * FROM t2_bak;
--3)
INSERT INTO t2_bak VALUES(1);
-- 테이블 구조만 복사.(데이타는 제외)
CREATE TABLE t2_struct
AS
SELECT * FROM t2 WHERE 1 = 0;
-- 확인
SELECT * FROM t2_struct;
-- 컬럼별칭 구문을 이용하여, 테이블의 컬럼명을 원하는 대로 할수가 있다.
CREATE TABLE t2_struct_2
AS
SELECT NUM1 AS NUMBER1 FROM t2 WHERE 1 = 0;
-- 확인
SELECT * FROM t2_struct_2;