我对 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的可行方法?