TRUNCATE - Amazon Redshift

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 TABLE 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.

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.