DROP ICEBERG TABLE¶
Removes an Iceberg table from the current/specified schema.
Note that this topic refers to Iceberg tables as simply “tables” except where specifying Iceberg tables avoids confusion.
Syntax¶
DROP [ ICEBERG ] TABLE [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Parameters¶
name
Specifies the identifier for the table to drop. If the identifier contains spaces, special characters, or mixed-case characters, the entire string must be enclosed in double quotes. Identifiers enclosed in double quotes are also case-sensitive (for example,
"My Object"
).If the table identifier is not fully-qualified (in the form of
db_name.schema_name.table_name
orschema_name.table_name
), the command looks for the table in the current schema for the session.CASCADE | RESTRICT
Specifies whether the table can be dropped if foreign keys exist that reference the table:
CASCADE
drops the table even if the table has primary/unique keys that are referenced by foreign keys in other tables.RESTRICT
returns a warning about existing foreign key references and does not drop the table.
Default:
CASCADE
Access control requirements¶
A role used to execute this SQL command must have the following privileges at a minimum:
Privilege |
Object |
Notes |
---|---|---|
OWNERSHIP |
Iceberg table |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE |
External volume |
|
USAGE |
Integration (catalog) |
Required if the Iceberg table uses a catalog integration. |
Note that operating on any object in a schema also requires the USAGE privilege on the parent database and schema.
For instructions on creating a custom role with a specified set of privileges, see Creating Custom Roles.
For general information about roles and privilege grants for performing SQL actions on securable objects, see Overview of Access Control.
Usage notes¶
Restoring a dropped Iceberg table using the UNDROP ICEBERG TABLE or UNDROP TABLE command is not supported currently.
Before you drop a table, verify that no views reference the table. Dropping a table that is referenced by a view invalidates the view (querying the view returns an “object does not exist” error).
To drop a table, you must be using a role that has the OWNERSHIP privilege on the table.
Examples¶
Drop a table:
DROP ICEBERG TABLE t2; +--------------------------+ | status | |--------------------------| | T2 successfully dropped. | +--------------------------+
Drop the table again, but don’t raise an error if the table does not exist:
DROP ICEBERG TABLE IF EXISTS t2; +------------------------------------------------------------+ | status | |------------------------------------------------------------| | Drop statement executed successfully (T2 already dropped). | +------------------------------------------------------------+