位置:首頁 > 極客書 > PostgreSQL從現有表創建新表

PostgreSQL從現有表創建新表

PostgreSQL支持這樣的功能,從現有的表來創建一個新表(數據)。它可以使用以下兩種語法來實現。

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 INTOCREATE TABLE AS是推薦的語法。我們還可以追加“Where”子句中像上麵的SQL腳本。

CREATE TABLE 'NEW_TABLE_NAME' AS SELECT * FROM 'TABLE_NAME_YOU_WANT_COPY' WHERE CONDITION'

這裡寫了一個簡單的腳本來證明上述兩種使用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,yiibai
--2,yiibai2
SELECT * FROM STUDENT;

--create a backup table (student_bk) from student table
CREATE TABLE STUDENT_BK AS SELECT * FROM STUDENT;

--1,yiibai
--2,yiibai2
SELECT * FROM STUDENT_BK;

--create a backup table (student_bk2) from student table
SELECT * INTO STUDENT_BK2 FROM STUDENT;

--1,yiibai
--2,yiibai2
SELECT * FROM STUDENT_BK2;