CREATE EXTENSION

创建扩展-安装扩展

Synopsis

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

Description

CREATE EXTENSION将新的 extensions 加载到当前数据库中。不得已加载具有相同名称的 extensions。

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

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

Parameters

如果 extensions 在其控制文件中指定了schema参数,则无法使用SCHEMA子句覆盖该架构。通常,如果给出了SCHEMA子句,则该错误将与 extensions 的schema参数冲突。但是,如果还提供了CASCADE子句,则* schema_name 发生冲突时将被忽略。给定的 schema_name *将用于安装任何需要的 extensions,这些 extensions 在其控制文件中未指定schema

请记住,扩展本身不被认为在任何模式中:扩展具有非限定名称,这些名称必须在数据库范围内是唯一的。但是属于 extensions 的对象可以在模式内。

Notes

必须先安装扩展的支持文件,然后才能使用CREATE EXTENSION将扩展加载到数据库中。可以在附加提供的模块中找到有关安装 PostgreSQL 提供的扩展的信息。

当前可用于加载的 extensions 可以从pg_available_extensionspg_available_extension_versions系统视图中识别。

有关编写新 extensions 的信息,请参见Section 38.16

Examples

hstoreextensions 安装到当前数据库中:

CREATE EXTENSION hstore;

hstore的 9.1 之前的安装更新为扩展样式:

CREATE EXTENSION hstore SCHEMA public FROM unpackaged;

请小心指定安装现有hstore对象的架构。

Compatibility

CREATE EXTENSION是 PostgreSQL 扩展。

See Also

ALTER EXTENSION, DROP EXTENSION

上一章 首页 下一章