TRUNCATE - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

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, devi disporre dell’autorizzazione TRUNCATE TABLE, essere il proprietario della tabella o essere un utente con privilegi avanzati. 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 in streaming in 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 sulle viste materializzate in streaming di Amazon Redshift connesse a uno dei seguenti elementi:

    • Un flusso di dati Amazon Kinesis

    • Un argomento Streaming gestito da Amazon per Apache Kafka

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

    Per ulteriori informazioni, consulta Importazione in streaming in 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.