Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
TRUNCATE
Elimina tutte le righe da una tabella senza eseguire una scansione della tabella: questa operazione è un'alternativa più rapida a un'operazione non DELETE qualificata. Per eseguire un TRUNCATE comando, è necessario disporre dell'TRUNCATETABLEautorizzazione, essere il proprietario della tabella o un superutente. Per concedere le autorizzazioni per troncare una tabella, utilizza il comando GRANT.
TRUNCATEè molto più efficiente di DELETE e non richiede una manoVACUUM. ANALYZE Tuttavia, tieni presente che TRUNCATE commette la transazione in cui viene eseguita.
Sintassi
TRUNCATE [ TABLE ] table_name
Il comando funziona anche su una vista materializzata.
TRUNCATE materialized_view_name
Parametri
- TABLE
-
Parola chiave facoltativa.
- table_name
-
Tabella temporanea o persistente. Solo il proprietario della tabella o un utente con privilegi avanzati può troncarla.
Puoi troncare qualsiasi tabella, incluse le tabelle a cui si fa riferimento nei vincoli di chiave esterna.
Non è necessario sottoporre a vacuum una tabella dopo averla troncata.
- materialized_view_name
-
Una vista materializzata.
È possibile troncare una vista materializzata utilizzata per Inserimento in streaming su una vista materializzata.
Note per l'utilizzo
Il TRUNCATE comando esegue il commit della transazione in cui viene eseguito; pertanto, non è possibile ripristinare un'TRUNCATEoperazione e un TRUNCATE comando può eseguire altre operazioni quando esegue il commit da solo.
Esempi
Utilizzate il TRUNCATE comando per eliminare tutte le righe dalla CATEGORY tabella:
truncate category;
Tentativo di ripristinare un'TRUNCATEoperazione:
begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)
La DATE tabella rimane vuota dopo il ROLLBACK comando perché il TRUNCATE comando viene eseguito automaticamente.
L'esempio seguente utilizza il TRUNCATE comando per eliminare tutte le righe da una vista materializzata.
truncate my_materialized_view;
Elimina tutti i record nella vista materializzata e lascia intatti la vista materializzata e il relativo schema. Nella query, il nome della vista materializzata è un esempio.