DROP VIEW Statement in Confluent Cloud for Apache Flink

Confluent Cloud for Apache Flink® enables dropping views using the DROP VIEW statement. When a view is dropped, its definition is removed from the catalog. The corresponding Kafka topic Flink resource reservation is removed. Any statement that you submit after the view is dropped fails if it references the dropped view.

Syntax

DROP VIEW [IF EXISTS] [catalog_name.][db_name.]view_name

Description

DROP VIEW removes a view from the catalog. If the view does not exist, an exception is thrown unless IF EXISTS is specified.

Note

Dropping a view doesn’t affect Flink SQL statements that are already running and reference the view. Like other catalog objects, a running statement takes a snapshot of the view’s definition when the statement starts. The statement keeps running against that snapshot even after you drop the view. For more information, see Statements take a snapshot of their dependencies.

The view name can be in these formats:

  • catalog_name.db_name.view_name: The view with the given name is dropped from the catalog named “catalog_name” and the database named “db_name”.

  • db_name.view_name: The view with the given name is dropped from the current catalog of the execution table environment and the database named “db_name”.

  • view_name: The view with the given name is dropped from the current catalog and the current database of the execution table environment.

Examples

The following example drops the vip_customers view.

In the Confluent CLI or in a Cloud Console workspace, run the following command:

DROP VIEW vip_customers;

Your output should resemble:

Statement phase is COMPLETED.

If you try to query the dropped view:

SELECT * FROM vip_customers;

You receive an error message indicating that the view does not exist:

[Code: 1, SQL State: 42000]: Object 'default_catalog.default_database.vip_customers' does not exist.

To avoid the error when dropping a view that may not exist, use the IF EXISTS clause:

DROP VIEW IF EXISTS vip_customers;

This statement does not throw an error if the vip_customers view does not exist.