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' ;

Иногда я также использую этот метод для временного резервного копирования таблицы :), согласно 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;