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;