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;