TRUNCATE - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

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 per la tabella, essere il proprietario della tabella o essere 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.

  • Le operazioni TRUNCATE mantengono blocchi esclusivi quando vengono eseguite su viste materializzate in streaming di Amazon Redshift connesse a uno dei seguenti elementi:

    • Un flusso di dati Amazon Kinesis

    • Un argomento su Amazon Managed Streaming per Apache Kafka

    • Un flusso esterno supportato, ad esempio un argomento Confluent Cloud Kafka

    Per ulteriori informazioni, consulta Inserimento in streaming su una vista materializzata.

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.