sql >> Database >  >> RDS >> PostgreSQL

Kopieer een tabel (inclusief indexen) in 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]  

Hier is een voorbeeld

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

De andere manier om vanaf de eerste een nieuwe tabel te maken, is door

    CREATE TABLE films_recent (LIKE films INCLUDING INDEXES);  

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

Merk op dat Postgresql een patch heeft uitgebracht om problemen met de tabelruimte op te lossen als de tweede methode wordt gebruikt



  1. Hoe e-mailadres valideren met PL/SQL?

  2. MariaDB JSON_CONTAINS() uitgelegd

  3. Wat is de opgeslagen procedure en waarom de opgeslagen procedure?

  4. Opgeslagen procedure oproepen met VBA