sql >> Database teknologi >  >> RDS >> PostgreSQL

Kopier en tabel (inklusive indekser) i postgres

[CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ (column_name [, ...] ) ] [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] [ TABLESPACE tablespace ] AS query][1]

Her er et eksempel

CREATE TABLE films_recent AS
  SELECT * FROM films WHERE date_prod >= '2002-01-01';
 

Den anden måde at oprette en ny tabel fra den første på er at bruge

    CREATE TABLE films_recent (LIKE films INCLUDING INDEXES);  

    INSERT INTO films_recent
         SELECT *
           FROM books
          WHERE date_prod >= '2002-01-01';  
 

Bemærk, at Postgresql har en patch ud til at løse tablespace-problemer, hvis den anden metode bruges



  1. Tilfældig værdi for kolonnen DATETIME

  2. SQL:Hvordan finder man dubletter baseret på to felter?

  3. MySQL giver alle privilegier til databasen undtagen én tabel

  4. Hvordan får jeg kolonnedatatype i Oracle med PL-SQL med lave privilegier?