设置保留字(关键字)可以作为字段名或别名
功能描述
为了兼容更多的主流数据库,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)