PostgreSQL - возможны ли чувствительные к регистру имена таблиц и столбцов? - PullRequest
0 голосов
/ 12 сентября 2018

Я провел небольшое исследование имен таблиц и столбцов в 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 с именами сущностей с учетом регистра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...