Redshift表列名称自动转换为小写问题

时间:2018-05-07 07:46:49

标签: sql amazon-redshift

我在通过redshift表查询获取数据时遇到问题。例如:

table name:   test_users
column names: user_id, userName, userLastName

现在,在创建test_users表时,它会将userName列的大写字母转换为username,并与userLastName类似,将转换为userlastname

我找到了将所有列转换为大写或小写的方法,但不是按原样将其转换为。

1 个答案:

答案 0 :(得分:0)

不幸的是,在撰写本文时(2020年2月),AWS Redshift不支持区分大小写的标识符。而且,尽管Redshift基于PostgreSQL,但AWS对其进行了重大修改,以至于许多对PostgreSQL 8正确的假设对Redshift并不正确。

https://docs.aws.amazon.com/redshift/latest/dg/r_names.html上的文档明确指出了小写的标识符。相关段落如下,关键句子加粗:

名称标识数据库对象,包括表和列,以及用户和密码。术语名称和标识符可以互换使用。标识符有两种类型,标准标识符和带引号或定界的标识符。标识符只能包含UTF-8可打印字符。 标准和定界标识符中的ASCII字母不区分大小写,并在数据库中折叠为小写。在查询结果中,默认情况下,列名以小写形式返回。要以大写形式返回列名称,请将describe_field_name_in_uppercase配置参数设置为true。