TRUNCATE - Amazon Redshift

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 Importazione di dati in streaming.

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.