Wait the light to fall

Drop 语句

焉知非鱼

Drop Statements

DROP 语句

DROP 语句用于从当前或指定的目录中删除一个注册的表/视图/函数。

Flink SQL 目前支持以下 DROP 语句。

  • DROP TABLE
  • DROP DATABASE
  • DROP VIEW
  • DROP FUNCTION

运行一个 DROP 语句 #

DROP 语句可以用 TableEnvironment 的 executeSql()方法执行,也可以在 SQL CLI 中执行。executeSql()方法对于一个成功的 DROP 操作会返回’OK’,否则会抛出一个异常。

下面的例子展示了如何在 TableEnvironment 和 SQL CLI 中运行 DROP 语句。

val settings = EnvironmentSettings.newInstance()...
val tableEnv = TableEnvironment.create(settings)

// register a table named "Orders"
tableEnv.executeSql("CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...)")

// a string array: ["Orders"]
val tables = tableEnv.listTables()
// or tableEnv.executeSql("SHOW TABLES").print()

// drop "Orders" table from catalog
tableEnv.executeSql("DROP TABLE Orders")

// an empty string array
val tables = tableEnv.listTables()
// or tableEnv.executeSql("SHOW TABLES").print()

DROP TABLE #

DROP TABLE [IF EXISTS] [catalog_name.][db_name.]table_name

删除一个给定表名的表。如果要删除的表不存在,则抛出一个异常。

IF EXISTS

如果该表不存在,就不会发生任何事情。

DROP DATABASE #

DROP DATABASE [IF EXISTS] [catalog_name.]db_name [ (RESTRICT | CASCADE) ]

删除一个给定数据库名称的数据库,如果要删除的数据库不存在,会产生异常。如果要删除的数据库不存在,则抛出一个异常。

IF EXISTS

如果数据库不存在,则不会发生任何事情。

RESTRICT

丢弃非空数据库会触发异常。默认为启用。

CASCADE

丢弃一个非空的数据库也会丢弃所有相关的表和函数。

DROP VIEW #

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

丢弃一个有目录和数据库命名空间的视图。如果要删除的视图不存在,则会产生一个异常。

TEMPORARY

删除具有目录和数据库命名空间的临时视图。

IF EXISTS

如果视图不存在,则不会发生任何事情。

维护依赖关系 Flink 没有通过 CASCADE/RESTRICT 关键字来维护视图的依赖关系,当前的方式是当用户试图在诸如视图的底层表被删除的情况下使用视图时,会产生延迟错误消息。

DROP FUNCTION #

DROP [TEMPORARY|TEMPORARY SYSTEM] FUNCTION [IF EXISTS] [catalog_name.][db_name.]function_name;

删除一个有目录和数据库命名空间的目录函数。如果要放弃的函数不存在,则会产生一个异常。

TEMPORARY

丢弃具有目录和数据库命名空间的临时目录功能。

TEMPORARY SYSTEM

删除没有命名空间的临时系统函数。

IF EXISTS

如果函数不存在,就不会发生任何事情。

原文链接: https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/drop.html