CREATE EXTENSION

    描述

    CREATE EXTENSION 将新的扩展加载到当前数据库中。 不得加载的同名的扩展名。

    加载扩展本质上等于运行扩展脚本文件。 脚本通常创建新的SQL对象,例如函数,数据类型,操作符和索引支持方法。 CREATE EXTENSION 命令还记录所有创建的对象的身份, 如果DROP EXTENSION 执行时可以再次删除它们。

    加载扩展需要创建组件扩展对象所需的相同权限。 对于大多数扩展,这意味着需要超级用户或数据库所有者权限。 运行 CREATE EXTENSION的用户 成为后续特权检查目的的扩展的所有者,以及由扩展脚本创建的任何对象的所有者。

    IF NOT EXISTS

    如果具有相同名称的扩展名已经存在,请勿抛出错误。 在这种情况下发出通知, 现在的扩展程序不能保证与已安装的扩展名相似。

    extension_name

    要安装的扩展名。该名称在数据库中必须是唯一的。 扩展名是根据扩展控制文件中的细节创建 SHAREDIR/extension/extension_name.control.

    SCHEMA schema_name

    要在其中安装扩展对象的方案名称。这假设扩展允许其内容被重新定位。指定的方案必须已经存在。如果未指定,并且扩展控制文件未指定方案,则使用当前的默认对象创建方案。

    如果扩展名在其控制文件中指定了方案参数,则该方案无法用SCHEMA子句覆盖。通常, 如果给出了SCHEMA子句与扩展参数冲突,则会引发错误。但是, 如果还给出了 CASCADE子句, 那么当发生冲突的时候schema_name会被忽略。给定的schema_name 用于安装任何必要的但未在其控制文件中指定方案的扩展。

    扩展本身不在任何方案中:扩展的未限定名称在数据库中必须是唯一的。 但属于该扩展的对象可以在一个方案中。

    VERSION version

    要安装的扩展版本。这可以写成标识符或字符串文字。默认版本是在扩展控制文件中指定的值。

    FROM old_version

    用于旧版本的值由扩展名作者确定, 如果有多个版本的旧式模块可以升级到扩展名,则可能会有所不同。对于9.1之前的PostgreSQL提供的标准附加模块,指定 unpackaged 为 old_version 将模块更新为扩展样式时。

    CASCADE

    自动安装依赖尚未安装的扩展名。递归检查依赖扩展名,并且这些依赖关系也自动安装。如果指定了SCHEMA 子句,则该模式适用于所安装的扩展名和所有依赖扩展。指定的其他选项不适用于自动安装的从属扩展。特别是,安装从属扩展时,始终选择默认版本。

    注解

    目前可用于加载的扩展可以从 pg_available_extensions 系统视图中识别。

    在用户使用 CREATE EXTENSION 将扩展加载到数据库中之前,必须安装支持扩展文件,其中包括扩展控制文件和至少一个至少一个SQL脚本文件。 支持文件必须安装在所有Greenplum数据库主机的相同位置。有关创建新扩展的信息, 参阅 将相关对象打包到扩展中

    CREATE EXTENSION 是Greenplum数据库扩展。

    另见

    ALTER EXTENSION,