首页 > 数据库 >PostgreSQL与openGauss之关键字

PostgreSQL与openGauss之关键字

时间:2024-03-14 17:57:49浏览次数:28  
标签:reserved 数据库 保留 关键字 PostgreSQL openGauss

PostgreSQL 与 openGauss 之关键字

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

在 openGauss 执行结果如下:

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

经调查发现是 date 关键字的问题。

在 openGauss 的关键字列表中,虽然不是保留关键字,但是不允许是函数或者类型。

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

由此问题进行深入思考,对比 PostgreSQL 与 openGauss 数据库中哪些关键字做了差异化说明,避免在日常使用中再次遇到类似问题。

  

PostgreSQL

openGauss

DATE

-

非保留(不能是函数或类型)

IS

reserved (can be function or type)

保留

ISNULL

reserved (can be function or type)

非保留

LATERAL

reserved

-

MAXVALUE

non-reserved

保留

NUMBER

-

非保留(不能是函数或类型)

PROCEDURE

non-reserved

保留

TABLESAMPLE

reserved (can be function or type)

-

XMLNAMESPACES

non-reserved (cannot be function or type)

-

XMLTABLE

non-reserved (cannot be function or type)

-

通过对比两个数据库的保留关键字,在 openGauss 中"date"和"number" 虽然不是保留关键字,但是不可用于函数或类型操作,"isnull"和"LATERAL"变为非保留关键字,"maxvalue"和"procedure"变为保留关键字,“TABLESAMPLE”、“XMLNAMESPACES"及"XMLTABLE”不再做限制。

标签:reserved,数据库,保留,关键字,PostgreSQL,openGauss
From: https://www.cnblogs.com/renxyz/p/18073586

相关文章

  • openGauss分区使用样例
    openGauss分区使用样例概述openGauss1.1.0版本开始,分区方式分为三种,分别是RANGE、HASH和LIST,官方文档中对于分区表的使用样例比较少,这里对各种分区使用方式做一下整理,方便以后快速调整使用。范围分区VALUESLESSTHAN语法格式分区策略的分区键最多支持4列分区键支持......
  • openGauss行存与列存
    openGauss行存与列存列存表限制列存表不支持数组。列存表的数量建议不超过1000个。列存表的表级约束只支持PARTIALCLUSTERKEY,不支持主外键等表级约束。列存表的字段约束只支持NULL、NOTNULL和DEFAULT常量值。列存表不支持alter命令修改字段约束。列存表支持......
  • openGauss监控之exporter部署
    openGauss监控之exporter部署概述opengauss_exporter是为openGauss数据库量身打造的数据采集工具,配合当前最受欢迎的监控报警框架prometheus+grafana组合实时展示数据库信息,为openGauss数据库的平稳运行保驾护航。opengauss_exporter同openGauss数据库一样是开源......
  • volatile 关键字解析
    参考文档:validate关键字解析摘要:在Java并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题......
  • PostgreSQL从入门到精通教程 - 第46讲:poc-tpch测试
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第46讲:POC-TPCH测试  内容1:TPC-H介绍内容2:TPC-H......
  • volatile关键字是如何确保多线程环境下变量的可见性和有序性
    VOLATILE关键字在JAVA中用于确保多线程环境下的变量可见性和一定程度的有序性,其具体实现机制基于JAVA内存模型(JAVAMEMORYMODEL,JMM):可见性:当一个线程修改了标记为volatile的共享变量时,它会强制将这个变量值从当前线程的工作内存刷新回主内存。同时,其他线程在读取该volatil......
  • MogDB openGauss 角色切换后sequence为什么不连续
    本文出处:https://www.modb.pro/db/569272背景今天在客户现场做高可用切换测试,为了验证数据库节点角色切换后无数据丢失,我单独创建一张使用了自增sequence的表,通过vip方式访问数据库,并1s插入一条数据。因为数据库本身是通过benchmarksql工具加压的,数据库服务器的CPU使......
  • MogDB openGauss wal日志解析工具 mog_xlogdump
    MogDB/openGausswal日志解析工具mog_xlogdump本文出处:https://www.modb.pro/db/398124概述mog_xlogdump是云和恩墨独立开发的wal日志离线解析工具。熟悉PG的小伙伴应该都使用pg_xlogdump/pg_waldump查看过PG数据库的wal文件,解析的wal数据结果是没有办法直接拿......
  • MogDB-openGauss default privileges 使用方法
    MogDB/openGaussdefaultprivileges使用方法权限是用户访问数据库对象的首要条件,每个新增用户默认属于PUBLIC角色组成员,也就是具有PUBLIC角色组的权限,但在日常业务使用中,仅仅具有PUBLIC权限是远远不够的,还需要具有额外的权限,在MogDB/openGauss数据库支持的业务中经常需......
  • openGauss 由于RemoveIPC未关闭导致数据库crash
    openGauss由于RemoveIPC未关闭导致数据库crashsemop引发的数据库crash--主库FATAL:semop(id=xxxxx)failed:IdentifierremovedFATAL:semctl(xxxxxx,11,SETVAL,0)failed:Invalidargument--备库FATAL:semctl(xxxxxx,11,SETVAL,0)failed:InvalidargumentLOG......