TRUNCATE - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog .

TRUNCATE

Exclui todas as linhas de uma tabela sem fazer uma varredura de lista: esta operação é uma alternativa mais rápida a uma operação DELETE não qualificada. Para executar um comando TRUNCATE, é necessário ter a permissão TRUNCATE e ser o proprietário da tabela ou um superusuário. Para conceder permissões para truncar uma tabela, use o comando GRANT.

TRUNCATE é muito mais eficiente do que DELETE e não requer VACUUM nem ANALYZE. No entanto, esteja ciente de que TRUNCATE confirma a transação em que é executado.

Sintaxe

TRUNCATE [ TABLE ] table_name

O comando também funciona em uma visão materializada.

TRUNCATE materialized_view_name

Parâmetros

TABLE

Palavra-chave opcional.

table_name

Uma tabela temporária ou persistente. Somente o proprietário da tabela ou um superusuário pode truncá-la.

Você pode truncar qualquer tabela, incluindo tabelas com referência em limitações de chave externa.

Você não precisa limpar uma tabela depois de truncá-la.

materialized_view_name

Uma visão materializada.

Você pode truncar uma visão materializada que é usada para Ingestão de streaming para uma visão materializada.

Observações de uso

  • O comando TRUNCATE confirma a transação em que é executado. Portanto, você não pode reverter uma operação TRUNCATE, e um comando TRUNCATE pode confirmar outras operações quando confirma a si mesmo.

  • As operações TRUNCATE mantêm bloqueios exclusivos quando executadas em visões materializadas de streaming do Amazon Redshift conectadas a qualquer um dos seguintes:

    • Um Amazon Kinesis data stream

    • Um tópico Amazon Managed Streaming for Apache Kafka

    • Um stream externo compatível, como um tópico do Confluent Cloud Kafka

    Para obter mais informações, consulte Ingestão de streaming para uma visão materializada.

Exemplos

Use o comando TRUNCATE para excluir todas as linhas da tabela CATEGORY:

truncate category;

Tente reverter uma operação TRUNCATE:

begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)

A tabela DATE permanece vazia após o comando ROLLBACK porque o comando TRUNCATE foi confirmado automaticamente.

O exemplo a seguir usa o comando TRUNCATE para excluir todas as linhas de uma visão materializada.

truncate my_materialized_view;

Ele exclui todos os registros da visão materializada, deixando a visão materializada e o respectivo esquema intactos. Na consulta, o nome da visão materializada é apenas um exemplo.