- INSERT INTO "새 TABLE" ( SELECT * FROM "TABLE" ) ; // column 이 동일하면 가능.

- INSERT INTO "새 TABLE" ( * ) SELECT * FROM "TABLE" ; // syntax error at or near "*"

 

- 새로운 column 을 원하는 위치에 추가는 하고 싶을 경우 기존 table 을 기준으로

- 원하는 위치에 column 을 추가하여 새로운 table 을 생성한다.

- 그리고 다음의 쿼리문을 사용하여 DATA 를 INSERT 시킨다.

- 새로 추가한 column 을 제외한 기존 column 을 전부 입력해주어야 한다.

- pgAdmin III 의 우측버튼 INSERT script 메뉴를 사용하면 복사&붙이기를 사용하여 쉽게 입력할 수 있다.

 

INSERT INTO "NEW_TABLE" ( 새로 추가한 column 은 제외한 기존의 모든 column 목록 ) SELECT 모든 column 목록 FROM "OLD_TABLE" ;

 

* PostgreSQL 은 새로운 column 을 원하는 위치에 추가하는 기능이 없으므로 새 TABLE 을 만들어 수동으로 해주어야한다.


CREATE TABLE "NEW_TABLE" ( COLUMN );
INSERT INTO "NEW_TABLE" ( COLUMN ) SELECT COLUMN FROM "OLD_TABLE";
DROP TABLE "OLD_TABLE" CASCADE;
ALTER TABLE "NEW_TABLE" RENAME TO "OLD_TABLE";


CREATE TABLE "NEW_TABLE" ( LIKE "OLD_TABLE" INCLUDING ALL ) ;

* TABLE 을 복사하고 싶으면 위와 같은 쿼리문을 사용하면 된다.