YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
- MPP 架构
- 镜像分布策略
- 持续聚集
- 滑动窗口
- Grafana 监控指标解读
- Prometheus 监控指标解读
- 术语表
-
工具指南
- mxaddmirrors
- mxbackup
- mxbench
- mxdeletesystem
- mxgate
- mxinitstandby
- mxmoveseg
- mxpacklogs
- mxrecover
- mxrestore
- mxshift
- mxstart
- mxstate
- mxstop
- gpconfig
- pgvector
-
数据类型
-
存储引擎
-
执行引擎
-
系统配置参数
SQL 参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEGMENT_SET
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
常见问题(FAQ)
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
- 要安装的扩展名。该名称在数据库中必须唯一。 根据扩展控制文件SHAREDIR/extension/extension_name.control中的详细信息创建扩展。
SHAREDIR是安装共享数据目录,例如 usr/local/matrixdb/share/postgresql(YMatrix 4.X 路径)或 /opt/ymatrix/matrixdb5/share/postgresql(YMatrix 5.X 路径)。 命令pg_config --sharedir显示目录。
SCHEMA schema_name
- 在其中安装扩展对象的模式名称。 假定扩展名允许其内容重定位。 命名模式必须已经存在。 如果未指定,并且扩展控制文件未指定模式,则使用当前的默认模式创建对象。
如果扩展名在其控制文件中指定了模式参数,则无法使用SCHEMA子句覆盖该模式。 通常,如果给定了SCHEMA子句,并且与扩展模式参数冲突,则会引发错误。 但是,如果还给出了CASCADE子句,则schema_name在冲突时将被忽略。 给定的schema_name用于安装所有需要的扩展,这些扩展在其控制文件中未指定架构。
扩展本身不在任何模式内。 扩展名具有非限定名称,这些名称在数据库中必须唯一。 但是属于扩展名的对象可以在模式内。
VERSION version
- 要安装的扩展程序的版本。 可以将其写为标识符或字符串文字。 默认版本是扩展控制文件中指定的值。
FROM old_version
- 仅在尝试安装扩展来替换旧模块(该扩展是未打包到扩展中的对象集合)的扩展时,才指定FROM old_version。 如果指定,则CREATE EXTENSION运行替代安装脚本,该脚本将现有对象吸收到扩展中,而不是创建新对象。 确保SCHEMA子句指定了包含这些预先存在的对象的模式。
用于old_version的值由扩展作者确定,如果可以将多个旧版本的模块升级为扩展,则该值可能会有所不同。 对于9.1之前的PostgreSQL提供的标准附加模块,在将模块更新为扩展样式时, 请为old_version指定unpackaged。
CASCADE
- 尚未安装自动安装相关扩展。 递归检查相关的扩展,并且这些从属扩展也将自动安装。 如果指定了SCHEMA子句,则该模式适用于扩展和已安装的所有从属扩展。 指定的其他选项不适用于自动安装的从属扩展。 特别是,在安装从属扩展时始终选择默认版本。
注解
当前可用于加载的扩展名可以从pg_available_extensions或pg_available_extension_versions系统视图中识别。
在使用CREATE EXTENSION将扩展加载到数据库之前,必须安装支持的扩展文件,包括扩展控制文件和至少一个SQL脚本文件。 支持文件必须安装在所有MatrixDB数据库主机上的相同位置。
兼容性
CREATE EXTENSION是 YMatrix 数据库扩展。