

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# DROP TABLE
<a name="r_DROP_TABLE"></a>

Elimina una tabla de una base de datos. 

Si desea borrar las filas de una tabla sin eliminar la tabla, use el comando DELETE o TRUNCATE. 

DROP TABLE elimina las restricciones que existen en la tabla de destino. Puede eliminar varias tablas con un solo comando DROP TABLE. 

No se puede ejecutar DROP TABLE con una tabla externa en una transacción (BEGIN … END). Para obtener más información acerca de las transacciones, consulte [Niveles de aislamiento en Amazon Redshift](c_serial_isolation.md).

Para encontrar un ejemplo en el que se conceda el privilegio DROP a un grupo, consulte de GRANT [Ejemplos](r_GRANT-examples.md).

## Privilegios necesarios
<a name="r_DROP_TABLE-privileges"></a>

Los siguientes privilegios son necesarios para DROP TABLE:
+ Superusuario
+ Usuarios con el privilegio DROP TABLE
+ Propietario de la tabla con el privilegio USAGE en el esquema

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

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

## Parameters
<a name="r_DROP_TABLE-parameters"></a>

IF EXISTS  
Cláusula que indica que si la tabla especificada no existe, el comando no debe realizar cambios y debe devolver un mensaje en el que se indique que la tabla no existe, en lugar de terminar con un error.  
Esta cláusula es útil cuando se realiza scripting, para que el script no produzca un error si DROP TABLE se ejecuta contra una tabla que no existe.

 *name*   
Nombre de la tabla que se eliminará. 

CASCADE  
Cláusula que indica que se deben eliminar automáticamente los objetos que dependen de la tabla, como las vistas.  
Para crear una vista que no dependa de otros objetos de base de datos, como vistas y tablas, incluya la cláusula WITH NO SCHEMA BINDING en la definición de la vista. Para obtener más información, consulte [CREATE VIEW](r_CREATE_VIEW.md).

RESTRICT   
Cláusula que indica que no se debe eliminar la tabla si tiene objetos dependientes. Esta acción es la predeterminada.

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

 **Eliminar una tabla sin dependencias** 

En el siguiente ejemplo, se crea y se elimina una tabla denominada FEEDBACK que no tiene dependencias: 

```
create table feedback(a int);

drop table feedback;
```

 Si una tabla contiene columnas que se referencian en las vistas o en otras tablas, Amazon Redshift muestra un mensaje similar al siguiente. 

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

 **Eliminar dos tablas simultáneamente** 

El siguiente conjunto de comandos crea una tabla FEEDBACK y una tabla BUYERS y, luego, elimina ambas tablas con un único comando: 

```
create table feedback(a int);

create table buyers(a int);

drop table feedback, buyers;
```

 **Eliminar una tabla con una dependencia** 

Los siguientes pasos muestran cómo eliminar una tabla denominada FEEDBACK con el comando CASCADE. 

Primero, cree una tabla simple denominada FEEDBACK con el comando CREATE TABLE: 

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

 Luego, use el comando CREATE VIEW para crear una vista denominada FEEDBACK\_VIEW que dependa de la tabla FEEDBACK: 

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

 En el siguiente ejemplo, se elimina la tabla FEEDBACK y, también, la vista FEEDBACK\_VIEW, ya que FEEDBACK\_VIEW depende de la tabla FEEDBACK: 

```
drop table feedback cascade;
```

 **Ver las dependencias de una tabla** 

Para devolver las dependencias de la tabla, utilice el siguiente ejemplo. Sustituya {{my\_schema}} y {{my\_table}} por su propio esquema y tabla. 

```
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}} y sus dependencias, use el siguiente ejemplo. En este ejemplo también se devuelven todas las dependencias de la tabla que se ha eliminado.

```
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 |
+------------------+----------------+---------------+--------------+-------------+
```

 **Eliminar una tabla con IF EXISTS** 

En el siguiente ejemplo, se elimina la tabla FEEDBACK, si existe. Si no existe, no se realiza ninguna acción y se devuelve un mensaje: 

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