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 INTO。 CREATE 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;