PostgreSQL数据库对于大小写的处理规则
PostgreSQL数据库在默认情况下对标识符(如表名、列名等)是大小写敏感的。这意味着在创建对象时使用的字符大小写将被保留。但是,当你查询这些对象时,PostgreSQL会将所有的标识符转换为小写,除非它们被双引号包围。
例如,创建一个名为"MyTable"的表:
CREATE TABLE "MyTable" (
id SERIAL PRIMARY KEY,
name VARCHAR(100)
);
在这个例子中,双引号确保了表名"MyTable"被保存时保留了大小写。
查询时,你必须使用与创建时相同的大小写或用双引号包围:
-- 正确,因为是创建时的大小写
SELECT * FROM mytable;
-- 正确,因为用了双引号
SELECT * FROM "MyTable";
如果不使用双引号,则必须保证查询中的大小写与创建对象时的大小写完全一致,这通常不推荐,因为这可能导致可读性和维护性问题。
如果想要在PostgreSQL中忽略大小写,可以在创建数据库时使用LC_COLLATE = 'C'
(或者相关的设置),但这通常不推荐,因为它可能导致与其他系统的不兼容问题。
评论已关闭