PostgreSQL –既存のテーブルからテーブルを作成
PostgreSQLは、既存のテーブルから(データを含む)新しいテーブルを作成するなどの機能をサポートします。 次の2つの構文で実現できます。
1) CREATE TABLE 'NEW_TABLE_NAME' AS SELECT * FROM 'TABLE_NAME_YOU_WANT_COPY'; 2) SELECT * INTO 'NEW_TABLE_NAME' FROM 'TABLE_NAME_YOU_WANT_COPY' ;
PostgresQLによると、テーブルを一時的にバックアップするためにこの方法を使用することもあります。「CREATE TABLE AS」は機能的にはSELECT INTOに似ています。 CREATE TABLE ASが推奨される構文です。 上記のSQLスクリプトに「Where」句を追加することもできます。
CREATE TABLE 'NEW_TABLE_NAME' AS SELECT * FROM 'TABLE_NAME_YOU_WANT_COPY' WHERE CONDITION'
上記の2つのCREATE TABLE ASメソッドとSELECT INTOメソッドの使用法を示す簡単なスクリプトを作成します。
--Create a student table for demo
CREATE TABLE STUDENT(
SID bigserial NOT NULL,
NAME character varying(50) NOT NULL
)
--Insert two records for testing
INSERT INTO STUDENT VALUES(1,'MKYONG');
INSERT INTO STUDENT VALUES(2,'MKYONG2');
--1,example
--2,example2
SELECT * FROM STUDENT;
--create a backup table (student_bk) from student table
CREATE TABLE STUDENT_BK AS SELECT * FROM STUDENT;
--1,example
--2,example2
SELECT * FROM STUDENT_BK;
--create a backup table (student_bk2) from student table
SELECT * INTO STUDENT_BK2 FROM STUDENT;
--1,example
--2,example2
SELECT * FROM STUDENT_BK2;