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