CREATE EXTENSION 是用于创建 扩展 的 DDL 命令。
CREATE EXTENSION 在 PostgreSQL 9.1 中被添加。
用法
CREATE EXTENSION 通过读取匹配的扩展控制文件并在扩展 SQL 文件或文件中创建数据库对象来创建扩展。
如果找不到匹配的扩展(因为该扩展未安装或不存在),CREATE EXTENSION 将报告扩展的控制文件不存在。
如果找不到扩展,并且 PostgreSQL 是从系统软件包安装的,那么可能需要安装相应的
contrib 软件包。变更历史
- PostgreSQL 13
CREATE EXTENSION … FROM …语法已移除(提交 70a77320)
- PostgreSQL 9.6
CREATE EXTENSION … CASCADE语法已添加(提交 b67aaf21)
- PostgreSQL 9.1
- 添加(提交 d9572c4e)
示例
CREATE EXTENSION 的基本用法示例
postgres=# CREATE EXTENSION pg_stat_statements; CREATE EXTENSION
在用户指定的模式中创建扩展
postgres=# CREATE EXTENSION pg_stat_statements WITH SCHEMA pgss; CREATE EXTENSION
某些扩展不支持在用户指定的模式中创建扩展
postgres=# CREATE EXTENSION adminpack WITH SCHEMA public; ERROR: extension "adminpack" must be installed in schema "pg_catalog"
创建扩展及其所有依赖项
postgres=# CREATE EXTENSION bool_plperlu CASCADE; NOTICE: installing required extension "plperlu" CREATE EXTENSION
尝试创建不存在的扩展(可能因为它尚未安装)
postgres=# CREATE EXTENSION foo; ERROR: could not open extension control file "/usr/pgsql-11/share/extension/foo.control": No such file or directory
参考资料
- PostgreSQL 文档: CREATE EXTENSION
