Probabilmente vuoi CREATE TABLE AS
- funziona anche per TEMPORARY
(TEMP
) tabelle:
CREATE TEMP TABLE temp1 AS
SELECT dataid
, register_type
, timestamp_localtime
, read_value_avg
FROM rawdata.egauge
WHERE register_type LIKE '%gen%'
ORDER BY dataid, timestamp_localtime;
Questo crea una tabella temporanea e vi copia i dati. Uno istantanea statica dei dati, intendiamoci. È proprio come una normale tabella, ma risiede nella RAM se temp_buffers
è impostato sufficientemente alto. È visibile solo all'interno della sessione corrente e alla fine muore. Quando viene creato con ON COMMIT DROP
muore alla fine della transazione .
Le tabelle temporanee vengono prima nel percorso di ricerca dello schema predefinito , nascondendo altre tabelle visibili con lo stesso nome a meno che non siano qualificate per lo schema:
- In che modo il percorso_ricerca influenza la risoluzione dell'identificatore e lo "schema corrente"
Se vuoi dinamico , cercherai CREATE VIEW
- una storia completamente diversa.
Lo standard SQL definisce anche e Postgres supporta anche: . Ma il suo utilizzo è sconsigliato:SELECT INTO
È meglio usare CREATE TABLE AS
a questo scopo nel nuovo codice.
Non c'è davvero bisogno di una seconda variante di sintassi e SELECT INTO
viene utilizzato per l'assegnazione in plpgsql
, dove la sintassi SQL di conseguenza non è possibile.
Correlati:
- Combina due tabelle in una nuova in modo che le righe selezionate dall'altra vengano ignorate
- ERRORE:i parametri inseriti dopo uno con un valore predefinito devono avere valori predefiniti anche in Postgres
CREATE TABLE LIKE (...)
copia solo la struttura da un'altra tabella e nessun dato:
Il LIKE
La clausola specifica una tabella da cui la nuova tabella copia automaticamente tutti i nomi di colonna, i relativi tipi di dati e i relativi vincoli non nulli.
Se hai bisogno di una tabella "temporanea" solo ai fini di una singola query (e poi scartala) una "tabella derivata" in un CTE o una sottoquery ha un sovraccarico notevolmente inferiore:
- Cambiare manualmente il piano di esecuzione della query in postgresql?
- Combina due query SELECT in PostgreSQL
- Riutilizza il valore selezionato calcolato
- Più CTE in un'unica query
- Aggiorna con i risultati di un altro sql