PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# CREATE EXTENSION

## 名称

CREATE EXTENSION -- 安装一个扩展

## 大纲

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

## 描述

create extension 命令安装一个新的扩展到一个数据库中.必须保证没有同名的扩展已经被安装.

安装一个扩展意味着执行一个扩展的脚本文件.这个脚本会创建一个新的SQL实体,例如函数, 数据类型,操作符,和索引支持的方法.

安装扩展需要有和创建他的组件对象相同的权限.对于大多数扩展这意味着需要超户或者数据库所有者的权限. 对于后续的权限检查和该扩展脚本所创建的实体，运行CREARE EXTENSION命令的角色将变为扩展的所有者．

## 参数

`IF NOT EXISTS`

  如果系统已经存在一个同名的扩展，不会报错．这种情况下会给出一个提示．请注意该参数不保证系统存在的扩展和现在脚本创建的扩展相同．

`extension_name`

  将被安装扩展的名字．PostgresQL从`SHAREDIR/extension/``extension_name``.control`这个文件安装扩展.

`schema_name`

  扩展的实例被安装在该模式下,扩展的内容可以被重新安装.指定的模式必须已经存在.如果没有指定,扩展的控制文件也不指定一个模式,这样将使用默认模式.

  注意扩展不认为它在任何模式里面:扩展在一个数据库范围内的名字是不受限制的,但是一个扩展的实例是属于一个模式的.

`version`

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

`old_version`

  当你想升级安装"old style" 模块中没有的内容时,你必须指定`FROM` `old_version`. 这个选项使`CREATE EXTENSION` 运行一个安装脚本将新的内容安装到扩展中,而不是创建一个新的实体.注意`SCHEMA`指定了包括这些已存在实体的模式.

  `old_version`的值由扩展的作者决定,如果有多个旧的版本升级到一个扩展这个值可能会改变.对于pre-9.1PostgreSQL 提供的标准扩展,当升级扩展时使用`unpackaged` 代替`old_version`

## 注意

在你使用 `CREATE EXTENSION`去安装一个扩展到数据库之前,扩展所需的文件必须被安装.安装扩展所需的信息在Additional Supplied Modules.

现在可以安装的扩展可以在`pg_available_extensions` 或者`pg_available_extension_versions`找到.

关于写一个扩展信息,可以查看第 35.15 节.

## 例子

在当前数据库安装hstore扩展:

    CREATE EXTENSION hstore;

升级一个9.1安装的`hstore` :

    CREATE EXTENSION hstore SCHEMA public FROM unpackaged;

注意指定你在哪个模式安装过 `hstore` .

## 兼容性

`CREATE EXTENSION`是PostgreSQL的一个扩展.

## 相关内容

ALTER EXTENSION, DROP EXTENSION

上一页 | 起始页 | 下一页
CREATE EVENT TRIGGER | 上一级 | CREATE FOREIGN DATA WRAPPER