VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

CREATE EXTENSION

CREATE EXTENSION - 安装扩展程序

语法格式

CREATE EXTENSION [ IF NOT EXISTS ] extension_name
    [ WITH ] [ SCHEMA schema_name ]
             [ VERSION version ]
             [ FROM old_version ]
             [ CASCADE ]

说明

CREATE EXTENSION将新扩展加载到当前数据库中。必须没有已加载的同名扩展名。

加载扩展基本上等于运行扩展的脚本文件。该脚本通常会创建新的SQL对象,例如函数,数据类型,运算符和索引支持方法。CREATE EXTENSION 另外记录所有已创建对象的标识,以便在发出 DROP EXTENSION时可以再次删除它们。

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

参数说明

  • IF NOT EXISTS

    已有同名扩展存在时不要抛出错误。这种情况下会发出一个提示。 注意,不保证现有的扩展与将要从当前可用的脚本文件创建的脚本 有任何相似。

  • extension_name

    要安装的扩展的名称。Vastbase E100 将使用文件 SHAREDIR/extension/extension_name.control 中的指令来创建该扩展。

  • schema_name

    假定该扩展允许其内容被重定位,这是要在其中安装该扩展的对象的 模式名称。被提到的模式必须已经存在。如果没有指定并且该扩展的 控制文件也没有指定一个模式,将使用当前的默认对象创建模式。 如果该扩展在其控制文件中指定了一个schema参数, 那么不能用SCHEMA子句覆盖该模式。通常,如果 给出了一个SCHEMA子句并且它与扩展的 schema参数冲突,则会发生错误。不过,如果也给 出了CASCADE子句,则schema冲突时会忽略 schema_name。 给定的schema_name 将被用来安装任何需要的并且没有在其控制文件中指定 schema的扩展。 记住扩展本身被认为不在任何模式中:扩展具有无限定的名称,并且 要在整个数据库范围内唯一。但是属于扩展的对象可以在模式中。

  • version

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

  • old_version

    当且仅当尝试要安装一个扩展来替代一个“老式” 的模块(它只是一组没有被打包成扩展的对象的集合)时, 才必须指定 FROM old_version。 这个选项导致CREATE EXTENSION运行 另一个安装脚本把现有的对象吸收到该扩展中,而不是创建 新对象。当心SCHEMA指定的是包含已经存在 对象的模式。 用于old_version的值由扩展的作者决定, 且如果有多于一种版本的老式模块可以被升级到扩展,该值还可能变化。

  • CASCADE

    自动安装这个扩展所依赖的任何还未安装的扩展。它们的依赖也会同样 被自动安装。如果给出SCHEMA子句,它会应用于这种方式 下安装的所有扩展。这个语句的其他选项不会被应用于自动安装的扩展。 特别地,这些自动安装的扩展的默认版本将被选中。

注意事项

在使用CREATE EXTENSION载入扩展到数据库中之前, 必须先安装好该扩展的支持文件。关于安装Vastbase E100提供的扩展的信息可以在 额外提供的模块中找到。

当前可以用于载入的扩展可以在系统视图 pg_available_extensions 或者 pg_available_extension_versions 中看到。

示例

将 hstore扩展安装到当前数据库中:

CREATE EXTENSION hstore;