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

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

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

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

由此问题进行深入思考,对比PostgreSQL与openGauss数据库中哪些关键字做了差异化说明,避免在日常使用中再次遇到类似问题
| PostgreSQL | openGauss | |
|---|---|---|
| AUTHID | 保留 | |
| BUCKETS | 保留 | |
| COMPACT | 保留 | |
| DATE | 非保留(不能是函数或类型) | |
| DELTAMERGE | 保留 | |
| EXCLUDED | 保留 | |
| FENCED | 保留 | |
| GROUPING | 非保留(不能是函数或类型) | |
| HDFSDIRECTORY | 保留 | |
| IS | reserved (can be function or type) | 保留 |
| ISNULL | reserved (can be function or type) | 非保留 |
| LATERAL | reserved | |
| LESS | 保留 | |
| MAXVALUE | non-reserved | 保留 |
| MINUS | 保留 | |
| MODIFY | 保留 | |
| NLSSORT | 保留 | |
| NUMBER | 非保留(不能是函数或类型) | |
| PERFORMANCE | 保留 | |
| PROCEDURE | non-reserved | 保留 |
| REJECT | 保留 | |
| ROWNUM | 保留 | |
| SYSDATE | 保留 | |
| TABLESAMPLE | reserved (can be function or type) | |
| VERIFY | 保留 | |
| XMLNAMESPACES | non-reserved (cannot be function or type) | |
| XMLTABLE | non-reserved (cannot be function or type) |
最后修改时间:2021-12-30 13:54:53
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




