По умолчанию postgresql преобразует идентификаторы без кавычек в выражении SQL в строчные буквы;это не то же самое, что сопоставление без учета регистра.
Так что, если вы определили таблицу с именем «TABLE», то вам нужно обратиться к ней как «TABLE», поскольку просто TABLE будет интерпретироваться как"table".
Проще говоря, лучшая тактика - избегать использования идентификаторов в верхнем регистре в postgresql: каталоги и большинство примеров, которые я видел, используют слова в нижнем регистре, разделенные подчеркиванием (the_thing).Вы можете использовать идентификаторы смешанного регистра, но в этом случае у вас есть две альтернативы:
- вы можете использовать идентификаторы смешанного регистра в своих выражениях и просто принять, что все они свернуты в нижний регистр, когда ониВы на самом деле сохранены.
- Вы можете взять на себя обязательство постоянно цитировать их и быть в соответствии с делом все время.
В них изложены мои рекомендации в порядке предпочтения: придерживайтесьстиль нижнего регистра, смешивать регистр и принимать свертывание, настаивать на смешанном регистре и обращаться с идентификаторами в кавычках везде.
PS не заставляйте меня называть таблицу таблицей.Я предполагаю, что это был просто (глупый) пример.Это также плохой пример, так как «select * from table» вызывает синтаксическую ошибку, поэтому очевидно, что это не тот оператор, который вы фактически пытаетесь выполнить.