#sql #postgresql
#sql #postgresql
Вопрос:
Я новичок в SQL и пытаюсь выбрать столбец Foto_municipis:
askdbase4=# select * from avatar_avatarx;
id | llista_municipis | Foto_municipis | primary | date_uploaded
---- ------------------ ----------------- --------- ------------------------
1 | Tore | tore.jpg | t | 2014-06-05 01:19:40 02
2 | Calldetenes | calldetenes.jpg | f | 2014-06-05 23:24:18 02
3 | Rupit i Pruit | baixa.jpeg | f | 2014-06-16 03:09:48 02
4 | Olost | olost.jpg | f | 2014-06-16 23:20:05 02
(4 rows)
по какой-то причине я могу успешно выбрать llista municipis:
SELECT llista_municipis FROM avatar_avatarx;
но когда я пытаюсь выбрать Foto_municipis, это то, что я получаю:
askdbase4=# SELECT llista_municipis FROM avatar_avatarx;
ERROR: column "Foto_municipis" does not exist
LINE 1: select Foto_municipis from avatar_avatarx;
Что я делаю не так?
Комментарии:
1. Все это объясняется в руководстве: postgresql.org/docs/current/static /…
2. похоже, согласно руководству, признаком имени, требующего кавычек, является то, что оно содержит символ, а не в наборе {[a-z], [0-9], _, amp;}
Ответ №1:
Вероятно, вы создали столбец с идентификатором, заключенным в двойные кавычки, и это сработает:
select "Foto_municipis"
from avatar_avatarx
Это почти всегда плохая идея, поскольку всегда будет необходимо ссылаться на него с помощью двойных кавычек, если только это не идентификатор в нижнем регистре, и в этом случае на него можно ссылаться в нижнем регистре без двойных кавычек.
Если столбец создан с идентификатором без двойных кавычек, на него можно ссылаться в любом стиле регистра, подобном Foto_municipis
или foto_Municipis
независимо от стиля исходного регистра идентификатора.