【发布时间】:2017-05-31 20:25:59
【问题描述】:
我有一个配置了 PostgreSQL 的项目,当事务发生在 PostgreSQL 上时,我得到关于“ID”的异常不会退出此类错误,这是一个区分大小写的问题。如何让 PostgreSQL 忽略大小写。
【问题讨论】:
-
请提供确切的错误
-
我已经回复了一个答案,请看,完全可以理解
标签: java postgresql wso2dss
我有一个配置了 PostgreSQL 的项目,当事务发生在 PostgreSQL 上时,我得到关于“ID”的异常不会退出此类错误,这是一个区分大小写的问题。如何让 PostgreSQL 忽略大小写。
【问题讨论】:
标签: java postgresql wso2dss
在 Postgres 中,任何在创建时用双引号引起来的标识符(即列名、表名等)变得区分大小写,而没有双引号的标识符不区分大小写。
例如-
Create table foo ("ID" serial, name character varying);
--Now using select query as
select id, name from foo -- gives error, id does not exist
--correct query
select "ID", name from foo -- or you can also use as below
select "ID", NAME from foo -- this will also work
“ID”列区分大小写,名称不区分大小写,同样适用于表名或任何其他标识符。因此,为避免混淆,最好使用不带双引号的标识符。
【讨论】:
您可以在查询中使用lower 之类的函数,也可以使用 citext。您将在此处找到更多信息:
https://www.postgresql.org/docs/9.6/static/citext.html
【讨论】: