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 DELETE non qualificata. Per eseguire un comando TRUNCATE, è necessario disporre dell'autorizzazione TRUNCATE TABLE, 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 VACUUM e ANALYZE. Tuttavia, tieni presente che TRUNCATE esegue il commit della transazione in cui viene eseguito.
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 comando TRUNCATE esegue il commit della transazione in cui viene eseguito; di conseguenza, non è possibile eseguire il rollback di un'operazione TRUNCATE e un comando TRUNCATE può eseguire altre operazioni quando esegue il commit.
Esempi
Utilizza il comando TRUNCATE per eliminare tutte le righe dalla tabella CATEGORY:
truncate category;
Tenta di eseguire il rollback di un'operazione TRUNCATE:
begin;
truncate date;
rollback;
select count(*) from date;
count
-------
0
(1 row)
La tabella DATE rimane vuota dopo il comando ROLLBACK perché il comando TRUNCATE è stato eseguito automaticamente.
L'esempio seguente utilizza il comando TRUNCATE 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.