PostgreSQL - Créer une table à partir d’une table existante

PostgreSQL - Créer une table à partir d'une table existante

Fonction de support PostgreSQL comme créer une nouvelle table (avec des données) à partir d'une table existante. Cela peut être réalisé avec les deux syntaxes suivantes.

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

Parfois, j'utilise également cette méthode pour créer une table de sauvegarde temporaire :), selon PostgresSQL, ‘CREATE TABLE AS’ est fonctionnellement similaire à SELECT INTO. CREATE TABLE AS est la syntaxe recommandée. Nous pouvons également ajouter la clause ‘Where’ dans le script SQL ci-dessus comme

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

J'écris un script simple pour démontrer l'utilisation des deux méthodes CREATE TABLE AS et SELECT INTO ci-dessus.

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