Flink基础(⼆⼗九):FLINK-SQL语法(五)DDL(⼆)DROP
语句
0 简介
DROP 语句⽤于从当前或指定的中删除⼀个已经注册的表、视图或函数。
Flink SQL ⽬前⽀持以下 DROP 语句:
DROP TABLE
DROP DATABASE
DROP VIEW
DROP FUNCTION
1 执⾏ DROP 语句
可以使⽤TableEnvironment中的executeSql()⽅法执⾏ DROP 语句,也可以在中执⾏ DROP 语句。若 DROP 操作执⾏成功,executeSql()⽅法返回 ‘OK’,否则会抛出异常。
以下的例⼦展⽰了如何在TableEnvironment和 SQL CLI 中执⾏⼀个 DROP 语句。
val settings = wInstance()...
val tableEnv = ate(settings)
// 注册名为 “Orders” 的表
// 字符串数组: ["Orders"]
val tables = tableEnv.listTables()
// uteSql("SHOW TABLES").print()
// 从 catalog 删除 “Orders” 表
// 空字符串数组
val tables = tableEnv.listTables()
// uteSql("SHOW TABLES").print()
Flink SQL>CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...);
[INFO]Table has been created.
Flink SQL> SHOW TABLES;
Orders
Flink SQL>DROP TABLE Orders;
[INFO]Table has been removed.
Flink SQL> SHOW TABLES;
[INFO] Result was empty.
2 DROP TABLE
drop table if exists user
DROP TABLE[IF EXISTS][catalog_name.][db_name.]table_name
根据给定的表名删除某个表。若需要删除的表不存在,则抛出异常。
IF EXISTS
表不存在时不会进⾏任何操作。
3 DROP DATABASE
DROP DATABASE[IF EXISTS][catalog_name.]db_name[ (RESTRICT | CASCADE) ]
根据给定的表名删除数据库。若需要删除的数据库不存在会抛出异常。
IF EXISTS
若数据库不存在,不执⾏任何操作。
RESTRICT
当删除⼀个⾮空数据库时,会触发异常。(默认为开)
CASCADE
删除⼀个⾮空数据库时,把相关联的表与函数⼀并删除。
4 DROP VIEW
DROP[TEMPORARY]VIEW[IF EXISTS][catalog_name.][db_name.]view_name
删除⼀个有 catalog 和数据库命名空间的视图。若需要删除的视图不存在,则会产⽣异常。
TEMPORARY
删除⼀个有 catalog 和数据库命名空间的临时视图。
IF EXISTS
若视图不存在,则不会进⾏任何操作。
依赖管理 Flink 没有使⽤ CASCADE / RESTRICT 关键字来维护视图的依赖关系,当前的⽅案是在⽤户使⽤视图时再提⽰错误信息,⽐如在视图的底层表已经被删除等场景。
5 DROP FUNCTION
DROP[TEMPORARY|TEMPORARY SYSTEM]FUNCTION[IF EXISTS][catalog_name.][db_name.]function_name;
删除⼀个有 catalog 和数据库命名空间的 catalog function。若需要删除的函数不存在,则会产⽣异常。
TEMPORARY
删除⼀个有 catalog 和数据库命名空间的临时 catalog function。
TEMPORARY SYSTEM
删除⼀个没有数据库命名空间的临时系统函数。
IF EXISTS
若函数不存在,则不会进⾏任何操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论