У меня есть таблица db, скажите, persons
в Postgres, переданном другой командой, которая имеет название столбца, говорят, "first_Name"
. Теперь я пытаюсь использовать команду PG для запроса этой таблицы в этом столбце-имени.Являются ли имена столбцов PostgreSQL чувствительными к регистру?
select * from persons where first_Name="xyz";
И он просто возвращает
ERROR: column "first_Name" does not exist
Не уверен, что если я делаю что-то глупое или есть обходной путь к этой проблеме, что мне не хватает?
Да, используя двойные кавычки - способ обслуживания ада. –
@Erwin Неверные имена таблиц верхнего регистра в соответствии со стандартом SQL или это что-то специфическое для PostGresSQL? – ArtB
@ArtB: стандарт SQL определяет идентификаторы без учета регистра, как и Postgres. Единственное отклонение: идентификаторы без кавычек складываются в верхний регистр в стандарте, но pg в нижнем регистре все, что не является двойным. (Только в редких случаях). [Подробнее см. Здесь.] (Http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS) –