

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# DESCARTAR TABELA
<a name="r_DROP_TABLE"></a>

Remove uma tabela de um banco de dados. 

Se você está tentando eliminar as linhas de uma tabela sem remover a tabela, use o comando DELETE ou TRUNCATE. 

DROP TABLE elimina restrições que existem na tabela de destino. Várias tabelas podem ser removidas com um único comando DROP TABLE. 

DROP TABLE com uma tabela externa não pode ser executado em uma transação (BEGIN … END). Para obter mais informações sobre transações, consulte [Níveis de isolamento no Amazon Redshift](c_serial_isolation.md).

Para encontrar um exemplo em que o privilégio DROP é concedido a um grupo, consulte GRANT [Exemplos](r_GRANT-examples.md).

## Privilégios obrigatórios
<a name="r_DROP_TABLE-privileges"></a>

A seguir estão os privilégios obrigatórios para DROP TABLE:
+ Superusuário
+ Usuários com o privilégio DROP TABLE
+ Proprietário da tabela com o privilégio USAGE no esquema

## Sintaxe
<a name="r_DROP_TABLE-synopsis"></a>

```
DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
```

## Parâmetros
<a name="r_DROP_TABLE-parameters"></a>

IF EXISTS  
Cláusula que indica que, se a tabela especificada não existe, o comando não deve fazer alterações e deve retornar uma mensagem informando que a tabela não existe, em vez de encerrar com um erro.  
Esta cláusula é útil durante scripting para que o script não falhe se o comando DROP TABLE for executado em uma tabela não existente.

 *name*   
Nome da tabela a ser removida. 

CASCADE  
Cláusula que indica que para eliminar automaticamente os objetos que dependem da tabela, como exibições.  
Para criar uma exibição que não dependa de outros objetos de banco de dados, como exibições e tabelas, inclua a cláusula WITH NO SCHEMA BINDING na definição de exibição. Para obter mais informações, consulte [CREATE VIEW](r_CREATE_VIEW.md).

RESTRICT   
Cláusula que indica que a tabela não se deve ser removida se contiver objetos que dependam dela. Esta ação é o padrão.

## Exemplos
<a name="r_DROP_TABLE-examples"></a>

 **Remover uma tabela sem dependências** 

O exemplo a seguir cria e remove uma tabela chamada FEEDBACK que não tem dependências: 

```
create table feedback(a int);

drop table feedback;
```

 Se uma tabela contém as colunas que estão referidas por exibições ou por outras tabelas, o Amazon Redshift exibe uma mensagem como a seguir. 

```
Invalid operation: cannot drop table feedback because other objects depend on it
```

 **Remover duas tabelas simultaneamente** 

O conjunto de comandos a seguir criar uma tabela FEEDBACK e uma tabela BUYERS. Em seguida, remove ambas as tabelas com um único comando: 

```
create table feedback(a int);

create table buyers(a int);

drop table feedback, buyers;
```

 **Remover uma tabela com uma dependência** 

As etapas a seguir mostram como remover uma tabela chamada FEEDBACK usando a opção CASCADE. 

Primeiro, crie uma tabela simples chamada FEEDBACK usando o comando CREATE TABLE: 

```
create table feedback(a int);
```

 Em seguida, use o comando CREATE VIEW para criar uma exibição chamada FEEDBACK\_VIEW dependente da tabela FEEDBACK: 

```
create view feedback_view as select * from feedback;
```

 O exemplo a seguir remove a tabela FEEDBACK e também a exibição FEEDBACK\_VIEW, pois FEEDBACK\_VIEW depende da tabela FEEDBACK: 

```
drop table feedback cascade;
```

 **Visualizar as dependências de uma tabela** 

Para retornar as dependências da tabela, use o exemplo a seguir. Substitua {{my\_schema}} e {{my\_table}} pelo esquema e tabela próprios. 

```
SELECT dependent_ns.nspname as dependent_schema
, dependent_view.relname as dependent_view 
, source_ns.nspname as source_schema
, source_table.relname as source_table
, pg_attribute.attname as column_name
FROM pg_depend 
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid 
JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid 
JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid 
JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid 
    AND pg_depend.refobjsubid = pg_attribute.attnum 
JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace
JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace
WHERE 
source_ns.nspname = 'my_schema'
AND source_table.relname = 'my_table'
AND pg_attribute.attnum > 0 
ORDER BY 1,2
LIMIT 10;
```

Para eliminar {{my\_table}} e as dependências, use o exemplo a seguir. O exemplo também retorna todas as dependências da tabela que foi descartada.

```
DROP TABLE my_table CASCADE;
         
SELECT dependent_ns.nspname as dependent_schema
, dependent_view.relname as dependent_view 
, source_ns.nspname as source_schema
, source_table.relname as source_table
, pg_attribute.attname as column_name
FROM pg_depend 
JOIN pg_rewrite ON pg_depend.objid = pg_rewrite.oid 
JOIN pg_class as dependent_view ON pg_rewrite.ev_class = dependent_view.oid 
JOIN pg_class as source_table ON pg_depend.refobjid = source_table.oid 
JOIN pg_attribute ON pg_depend.refobjid = pg_attribute.attrelid 
    AND pg_depend.refobjsubid = pg_attribute.attnum 
JOIN pg_namespace dependent_ns ON dependent_ns.oid = dependent_view.relnamespace
JOIN pg_namespace source_ns ON source_ns.oid = source_table.relnamespace
WHERE 
source_ns.nspname = 'my_schema'
AND source_table.relname = 'my_table'
AND pg_attribute.attnum > 0 
ORDER BY 1,2
LIMIT 10;

+------------------+----------------+---------------+--------------+-------------+
| dependent_schema | dependent_view | source_schema | source_table | column_name |
+------------------+----------------+---------------+--------------+-------------+
```

 **Remover uma tabela usando IF EXISTS** 

O exemplo a seguir remove a tabela FEEDBACK se ela existir, ou não faz nada e retorna uma mensagem se o esquema não existir: 

```
drop table if exists feedback;
```