Почему я не вижу имена столбцов таблицы? - PullRequest
12 голосов
/ 27 октября 2011

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

>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".

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

1 Ответ

30 голосов
/ 27 октября 2011

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

\d Test

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

create table "Test" ( ...

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

\d "Test"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...