DROP LIBRARY

从数据库中移除 UDx 库。从 Vertica 节点上的托管目录中删除库文件。库中用户定义的函数 (UDF) 不再可用。有关详细信息,请参阅开发用户定义的扩展 (UDx)

语法

DROP LIBRARY [ IF EXISTS ] [[database.]schema.]library [  CASCADE]

参数

IF EXISTS
仅当库存在时才执行此命令。 在 SQL 脚本中使用此子句,可避免在尝试创建不存在的对象之前删除它们时出错。
[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

要删除的库名称,与在 CREATE LIBRARY 中用于加载库的名称相同。
CASCADE
同时删除使用该库定义的所有函数。DROP LIBRARY 在以下情况下会失败:CASCADE 被省略,且有一个或多个 UDx 在使用目标库。

特权

可为以下之一:

示例

超级用户可以删除任何库:

=> DROP LIBRARY ml.MyLib CASCADE;

具有 UDXDEVELOPER 角色的用户可以删除其创建的库:

=> GRANT UDXDEVELOPER TO alice, bob;
GRANT ROLE

=> \c - alice;
You are now connected as user "alice".

-- Must enable the role before using:
=> SET ROLE UDXDEVELOPER;
SET

-- Create and use ml.mylib...

-- Drop library and dependencies:
DROP LIBRARY ml.mylib CASCADE;
DROP LIBRARY

可以向用户授予删除库的显式权限:

=> \c - alice
You are now connected as user "alice".

=> GRANT DROP ON LIBRARY ml.mylib to bob;
GRANT PRIVILEGE

=> \c - bob
You are now connected as user "bob".

=> SET ROLE UDXDEVELOPER;
SET

=> DROP LIBRARY ml.mylib cascade;
DROP LIBRARY