Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

CREATE TABLE LIKE

설명

CREATE TABLE … LIKE 문을 사용하면, 이미 존재하는 테이블의 스키마와 동일한 스키마를 갖는 테이블을 생성할 수 있다. 기존 테이블에서 정의된 칼럼 속성, 테이블 제약 조건, 인덱스도 그대로 복제된다. 원본 테이블에서 자동 생성된 인덱스의 이름은 새로 생성된 테이블의 이름에 맞게 새로 생성되지만, 사용자에 의해 지어진 인덱스 이름은 그대로 복제된다. 그러므로 USING INDEX 문으로 특정 인덱스를 사용하도록 작성된 질의문이 있다면 주의해야 한다.

CREATE TABLE … LIKE 문은 스키마만 복제하므로 칼럼 정의문을 작성할 수 없다.

구문

CREATE {TABLE | CLASS} <new_table_name> LIKE <old_table_name>

  • new_table_name : 새로 생성할 테이블 이름이다.
  • old_table_name : 데이터베이스에 이미 존재하는 원본 테이블 이름이다. CREATE TABLE … LIKE 문에서 아래의 테이블은 원본 테이블로 지정될 수 없다.
    • 분할 테이블
    • AUTO_INCREMENT 칼럼이 포함된 테이블
    • 상속 또는 메서드를 사용하는 테이블  
예제

CREATE TABLE a_tbl(

id INT NOT NULL DEFAULT 0 PRIMARY KEY,

phone VARCHAR(10));

INSERT INTO a_tbl VALUES(1,'111-1111'), (2,'222-2222'), (3, '333-3333');

 

--creating an empty table with the same schema as a_tbl

CREATE TABLE new_tbl LIKE a_tbl;

SELECT * FROM new_tbl;

 

There are no results.

 

;schema a_tbl

 

=== <Help: Schema of a Class> ===

 

 

 <Class Name>

 

     a_tbl

 

 <Attributes>

 

     id                   INTEGER DEFAULT 0 NOT NULL

     phone                CHARACTER VARYING(10)

 

 <Constraints>

 

     PRIMARY KEY pk_a_tbl_id ON a_tbl (id)

 

Current transaction has been committed.

 

;schema new_tbl

 

=== <Help: Schema of a Class> ===

 

 

 <Class Name>

 

     new_tbl

 

 <Attributes>

 

     id                   INTEGER DEFAULT 0 NOT NULL

     phone                CHARACTER VARYING(10)

 

 <Constraints>

 

     PRIMARY KEY pk_new_tbl_id ON new_tbl (id)

 

 

Current transaction has been committed.