PostgreSQL-区分大小写的表nad列名称可行吗?

时间:2018-09-12 14:12:30

标签: postgresql case-sensitive

我对 PostgreSQL 中的表名和列名做了一些研究,这对我来说是全新的。我以前使用过的所有数据库都是区分大小写的,并且我无法想象不使用区分大小写的名称(由于清楚)。

现在我很清楚,在PostgreSQL中创建这样的表:

CREATE TABLE Statuses (
    ID         SERIAL        NOT NULL PRIMARY KEY,
    StatusText VARCHAR (30) 
);

将在表“ statuses”中产生列“ id”和“ statustext”的结果。为了获得理想的结果,我们需要将查询修改为:

CREATE TABLE "Statuses" (
    "ID"         SERIAL        NOT NULL PRIMARY KEY,
    "StatusText" VARCHAR (30) 
);

现在,名称将为“状态”,“ ID”和“ StatusText”。但是,如果我们尝试这样做,那对我来说绝对是奇怪的:

SELECT ID, StatusText FROM public.Statuses;

它不起作用。可以预期,“ ID”在存储端和查询端都将被解释为“ id”(由于PSQL默认为小写样式),但事实并非如此。都不起作用:

SELECT id, statustext FROM public.statuses;

要使其正常运行,我们需要这样做:

SELECT "ID", "StatusText" FROM public."Statuses";

现在,除非我缺少PostgreSQL的一些要点或设置,否则在我看来所有这一切都是不可行的,实际上是个制胜法宝。还是我错过了使用区分大小写的实体名称来使用PostgreSQL的可行方法?

0 个答案:

没有答案