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' ;
Иногда я также использую этот метод для временного резервного копирования таблицы :), согласно PostgresSQL, «CREATE TABLE AS» функционально похож на SELECT INTO. CREATE TABLE AS - это рекомендуемый синтаксис. Мы также можем добавить пункт «Где» в приведенном выше 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,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;