Postgresql 是否可以强制列的值为小写

Postgresql 是否可以强制列的值为小写,postgresql,postgresql-9.3,case-insensitive,Postgresql,Postgresql 9.3,Case Insensitive,我正在使用PostgreSQL 9.3 我有一个带有varchar列的表,我总是希望用小写字符串填充它 在保存我的值之前,我可以使用Postgreslower函数,但是否有办法将此列定义为小写列?您只需在列中进行简单的检查即可完成此操作: create table lower_field ( field1 varchar check (field1 = lower(field1)) ); 您可以将该字段定义为不区分大小写的文本(CITEXT),这不是您要求的,但可能会满足您的要

我正在使用PostgreSQL 9.3

我有一个带有
varchar
列的表,我总是希望用小写字符串填充它


在保存我的值之前,我可以使用Postgres
lower
函数,但是否有办法将此列定义为小写列?

您只需在列中进行简单的检查即可完成此操作:

create table lower_field (
    field1 varchar check (field1 = lower(field1))
    );

您可以将该字段定义为不区分大小写的文本(CITEXT),这不是您要求的,但可能会满足您的要求。如果我这样做,请添加唯一约束并尝试保存“AaaA”,然后保存“AaaA”,我会得到唯一的异常吗?如果您将该字段创建为唯一的,您会得到,例如
创建表t(f CITEXT unique)好的,谢谢,它符合我的需要。你可以创建一个触发器,将任何输入转换成小写