VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

设置保留字(关键字)可以作为字段名或别名

功能描述

为了兼容更多的主流数据库,Vastbase关键字较多。应用系统数据从其他数据库迁移到Vastbase时可能会遇到表名、字段名等是Vastbase的关键字,从而导致查询报错的情况。因此,可以选择屏蔽部分Vastbase的关键字,以达到关键字可以作为字段名或别名等兼容场景的目的。

Vastbase通过GUC参数vb_exclude_reserved_words设置关键字,可以设置多个关键字,用“,”隔开,设置后重启数据库生效。

vb_exclude_reserved_words是POSTMASTER级别参数,请参考重设参数表1中对应设置方法进行设置。

注意事项

  • 关键字被屏蔽后,相关关键字语法将同步失效。

  • 某些关键字对于系统的正常运行非常重要,例如“select”。因此,这类关键字即使设置到系统参数vb_exclude_reserved_words中,也不会真正生效。下表列出了在vb_exclude_reserved_words参数中不会生效的关键字:

    all analyze and any array
    as asc between bigint binary
    binary_double binary_integer bit boolean case
    char character check collate collation
    column connect constraint create csn
    current_catalog current_date current_role current_schema current_time
    current_timestamp current_user date decimal default
    delayed desc distinct else end
    exists fetch float for from
    grant group grouping having in
    inner int integer interval into
    is like limit minus modify
    not null number numeric nvl
    offset on or order primary
    prior procedure rownuw select table
    then timestamp union user values
    varchar varchar2 when where with

示例

1、在操作系统命令行设置参数。

vi $PGDATA/postgresql.conf

添加以下参数:

vb_exclude_reserved_words='select,replace'

2、重启数据库生效。

vb_ctl restart

3、连接数据库。

vsql -d vastbase -p 5432 -r

4、查看屏蔽关键字。

show vb_exclude_reserved_words;

返回结果如下:

vb_exclude_reserved_words 
---------------------------
 select,replace
(1 row)

replace可作为字段别名,select关键字依旧生效。

select 1 replace;

返回结果如下:

replace 
---------
    1
(1 row)