Подтвердить что ты не робот

Почему я не могу увидеть имена столбцов таблицы?

Итак, я сделал несколько таблиц программно, и я хочу проверить, что структура - это то, что я думаю.

>Rocko=# \c Rocko
Password for user Rocko:
psql (8.4.4, server 8.4.8)
You are now connected to database "Rocko".
Rocko=# \d
            List of relations
 Schema |     Name     |   Type   | Owner
--------+--------------+----------+-------
 public | Email        | table    | Rocko
 public | Email_id_seq | sequence | Rocko
 public | Test         | table    | Rocko
 public | Test_id_seq  | sequence | Rocko
 public | User         | table    | Rocko
 public | User_id_seq  | sequence | Rocko
(6 rows)

Итак, например, я хочу видеть столбцы в Test.

Rocko=# \d Test

Did not find any relation named "Test".

Подожди минутку?! Разве тест не появился в списке "Список отношений"? Что здесь происходит?

4b9b3361

Ответ 1

PostgreSQL преобразует некотируемые идентификаторы (например, имена таблиц и столбцов) в нижний регистр по умолчанию; в стандарте говорится, что идентификаторы должны быть нормированы на верхний регистр, но это не важно здесь. Итак, когда вы это скажете:

\d Test

PostgreSQL считает, что те же, что и \d test. Вероятно, у вас есть таблица, которая была создана с указанным именем:

create table "Test" ( ...

чтобы его имя было чувствительным к регистру и должно быть указано (с двойными кавычками) каждый раз, когда на него ссылаются. Поэтому попробуйте указать имя:

\d "Test"