Я пытаюсь ознакомиться с Postgres (9.2) после справедливого использования MySQL (5.1), так как меня укусил несколько MySQL's gotchas. Тем не менее, в моих первых пяти минут с Postgres я столкнулся с одним из its gotchas, который я уверен, хиты всех:Почему PostgreSQL по умолчанию все в нижнем регистре?
- По умолчанию PostgreSQL конвертирует все, что не приводит слова в нижний регистр.
Это не слишком большое дело для меня, так как есть несколько очевидных обходные:
- Инкапсулируйте все в кавычках.
- Позвольте, чтобы все было названо в нижнем регистре.
Но мне интересно, почему. Учитывая, насколько я могу предположить, что это дизайнерское решение вызывает, я удивляюсь, что не могу найти никаких оснований в Интернете. Есть ли у кого-нибудь подробное объяснение или, желательно, ссылка на какой-то манифест разработчика, почему Postgres был спроектирован таким образом? Я заинтересован.
Вы спрашиваете об этом? http://stackoverflow.com/questions/153944/is-sql-syntax-case-sensitive?rq=1 –
AFAIK, стандарт говорит, что некотируемые идентификаторы должны быть свернуты в верхний регистр, [PostgreSQL складывается в нижний регистр] (http : //stackoverflow.com/a/8736088/479863). Складывание в верхний или нижний регистр не должно иметь значения, если вы иногда цитируете свои идентификаторы, но если вы это делаете, вы заслуживаете того, что получаете. Вы можете «создать таблицу« Блины »(...)' и 'select * from Pancakes', просто не создавайте таблицу« Блины »(...)' и пытайтесь «выбрать» из «Блинчиков». У людей MySQL, похоже, есть эта странная привычка к возврату - цитирование всего, потерять эту привычку. –
@muistooshort Я вообще видел утверждения о том, что спецификация SQL не указывает, должно ли фальцовка складываться в верхний или нижний регистр, только чтобы это произошло. Вы знаете, где это указано, чтобы сбросить в верхний регистр? (Я ищу ссылки, но не нахожу много полезного в данный момент). –