扩展语法
openGauss提供了一些扩展语法,目前处于Beta阶段,仅供内部使用,外部不可用。
下表列举了openGauss中支持的扩展语法,不作为商用特性交付,仅供参考。
表 1 扩展SQL语法
类别 | 语法关键字 | 描述 |
---|
创建表(CREATE TABLE) | INHERITS ( parent_table [, … ] ) | 是否支持继承表。 |
table_constraint: EXCLUDE USING index_method index_parameters [ WHERE ( predicate ) ] | FOREIGN KEY ( column_name [, … ] ) REFERENCES reftable [ ( refcolumn [, … ] ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] | 不支持用EXCLUDE USING index_method 为表创建排除约束。 |
修改表(ALTER TABLE) | TO { GROUP groupname | NODE ( nodename [, … ] ) } | 修改表数据分布的数据节点列表。 |
DELETE NODE ( nodename [, … ] ) | 删除表数据分布的数据节点。 |
加载模块 | CREATE EXTENSION | 把一个新的模块(例如DBLINK)加载进当前数据库中。 |
ALTER EXTENSION | 修改已加载的模块。 |
DROP EXTENSION | 删除已加载的模块。 |
聚集函数 | CREATE AGGREGATE | 定义一个新的聚集函数。 |
ALTER AGGREGATE | 修改一个聚集函数的定义。 |
DROP AGGREGATE | 删除一个现存的聚集函数。 |
操作符 | CREATE OPERATOR | 定义一个新的操作符。 |
ALTER OPERATOR | 修改一个操作符的定义。 |
DROP OPERATOR | 从数据库中删除一个现存的操作符。 |
操作符类 | CREATE OPERATOR CLASS | 定义一个新的操作符类。 |
ALTER OPERATOR CLASS | 修改一个操作符类的定义。 |
DROP OPERATOR CLASS | 删除一个现有操作符类。 |
操作符族 | CREATE OPERATOR FAMILY | 定义一个新的操作符族。 |
ALTER OPERATOR FAMILY | 修改一个操作符族的定义。 |
DROP OPERATOR FAMILY | 删除一个已有的操作符族。 |
文本检索解析器 | CREATE TEXT SEARCH PARSER | 创建一个新的文本检索解析器。 |
ALTER TEXT SEARCH PARSER | 修改文本检索解析器。 |
DROP TEXT SEARCH PARSER | 删除现有的文本检索解析器。 |
文本检索模板 | CREATE TEXT SEARCH TEMPLATE | 创建一个新的文本检索模板。 |
ALTER TEXT SEARCH TEMPLATE | 修改文本检索模板。 |
DROP TEXT SEARCH TEMPLATE | 删除现有的文本检索模板。 |
排序规则 | CREATE COLLATION | 创建排序规则。 排序规则使得用户可以定义数据在列级,甚至是操作级的排序规则和字符分类行为。 |
ALTER COLLATION | 修改排序规则。 |
DROP COLLATION | 删除排序规则。 |
生成一个通知 | NOTIFY | NOTIFY命令发送带有可选的“有效载荷”字符串的通知给先前执行监听数据库中指定的同一渠道的每一个客户端。 |
监听一个通知 | LISTEN | 给当前会话注册一个监听器。 |
停止监听通知信息 | UNLISTEN | 清除本次会话注册的所有监听器。 |
加载或重新加载一个共享库文件 | LOAD | 加载一个共享库文件到数据库服务器的地址空间。 |
释放一个数据库的会话资源 | DISCARD | 释放与此数据库会话的相关资源。 |
过程语言 | CREATE LANGUAGE | 注册一个新的语言。 |
ALTER LANGUAGE | 修改一个过程语言的定义。 |
DROP LANGUAGE | 删除一个过程语言。 |
域 | CREATE DOMAIN | 创建一个新的域。 |
ALTER DOMAIN | 修改现有域的定义。 |
DROP DOMAIN | 删除一个域。 |
编码转换 | CREATE CONVERSION | 定义字符集之间的转换。 |
ALTER CONVERSION | 修改一个编码转换的定义。 |
DROP CONVERSION | 删除一个先前定义过的编码转换。 |
类型转换 | CREATE CAST | 定义一个新的转换。一个转换说明如何在两个类型之间进行转换。 |
DROP CAST | 删除一个先前定义过的类型转换。 |
创建游标 | CURSOR name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] [ WITH HOLD ] FOR query | INSENSITIVE: 这个关键字没有什么作用,只在为了兼容SQL标准。 SCROLL:声明该游标可以用于反向检索。 WITH HOLD:声明该游标可以在创建它的事务成功提交后继续使用。 |
移动游标 | MOVE BACKWARD | 反向移动游标,需与SCROLL结合才能使用。 |