openGauss
开源数据库
openGauss社区官网
开源社区
PostgreSQL与openGauss之关键字
2020-12-17openGauss与postgresql对比
PostgreSQL 与 openGauss 之关键字
日常数据库运维的过程中可能对数据库关键字关注点并不是很高,但在程序开发的过程中,数据库对象建模要尽可能的避开数据库关键字的使用,否则在后续开发过程中需要用到各种转译的方法来将关键字转换为普通字符,会非常的麻烦。最近在 openGauss 上执行 date 函数后报语法错误,经查询 openGauss 是支持 date 函数的,但却用不了,真对这个问题,分别在 PostgreSQL12.2 数据库和 openGauss(1.0.1)数据库进行问题复现并问题分析。
在 openGauss 执行结果如下:

在 PostgreSQL 执行 date 函数结果如下:

经调查发现是 date 关键字的问题。
在 openGauss 的关键字列表中,虽然不是保留关键字,但是不允许是函数或者类型。

在 PostgreSQL 的关键字列表中,是一个普通字符。

由此问题进行深入思考,对比 PostgreSQL 与 openGauss 数据库中哪些关键字做了差异化说明,避免在日常使用中再次遇到类似问题。
通过对比两个数据库的保留关键字,在 openGauss 中"date"和"number" 虽然不是保留关键字,但是不可用于函数或类型操作,"isnull"和"LATERAL"变为非保留关键字,"maxvalue"和"procedure"变为保留关键字,“TABLESAMPLE”、“XMLNAMESPACES"及"XMLTABLE”不再做限制。