Как вы выполняете эквивалент Oracle DESCRIBE TABLE
в PostgreSQL (используя команду psql)?
postgresql
psql
table-structure
Мистер ондатра
источник
источник
+
действительно\d+ table_name
\d table_name
psql -E
удобно получить sql, который реализует\d+
и тому подобное (для использования вне приглашения psql)В дополнение к способу PostgreSQL (\ d 'что-то' или \ dt 'таблица' или \ ds 'последовательность' и т. Д.)
Стандартный способ SQL, как показано здесь :
Это поддерживается многими двигателями БД.
источник
\d+
нет. Это лучший ответ ИМОЕсли вы хотите получить его из запроса вместо psql, вы можете запросить схему каталога. Вот сложный запрос, который делает это:
Это довольно сложно, но показывает мощь и гибкость системного каталога PostgreSQL и должно помочь вам освоить мастерство pg_catalog ;-). Обязательно измените% s в запросе. Первый - это схема, а второй - имя таблицы.
источник
format_type()
будет включать любые модификаторы, связанные с типом, напримерnumeric(6,2)
; тогда какinformation_schema.columns
сообщит только базовый типnumeric
.Вы можете сделать это с помощью команды psql slash:
Это также работает для других объектов:
Источник: faqs.org
источник
PSQL эквивалент
DESCRIBE TABLE
это\d table
.См. Psql часть руководства PostgreSQL для более подробной информации.
источник
\c databasename
а неuse databasename
(для тех , кто прибывает из MySQL , как и я :-). Без\c databasename
первого\d tablename
выдаетNo relations found.
сообщение и больше ничего.Это должно быть решением:
источник
Вы можете сделать
\d *search pattern *
со звездочками, чтобы найти таблицы, которые соответствуют интересующему вас шаблону поиска.источник
\d *"<SubString>"*
. То есть двойные кавычки должны быть внутри звездочек. Хотя, если вы просто хотите список таблиц, то вы хотите использовать\dt
В дополнение к командной строке, которую
\d+ <table_name>
вы уже нашли, вы также можете использовать информационную схему для поиска данных столбца, используя info_schema.columnsисточник
FROM info_schema.columns
мне это не помоглоfrom information_schema.columns
, не уверен, что это опечатка в вашем ответе или какая-то проблема с реализацией в моем конце.Используйте следующий оператор SQL
Если вы замените tbl_name и col_name, он отобразит тип данных конкретного столбца, который вы ищете.
источник
Вы можете использовать это:
источник
Этот вариант запроса (как объяснено в других ответах) работал для меня.
Это подробно описано здесь: http://www.postgresqltutorial.com/postgresql-describe-table/
источник
В MySQL DESCRIBE имя_таблицы
В PostgreSQL \ d имя_таблицы
Или вы можете использовать эту длинную команду:
источник
Чтобы улучшить SQL-запрос другого ответа (что здорово!), Вот пересмотренный запрос. Он также включает имена ограничений, информацию о наследовании и типы данных, разбитые на составные части (тип, длина, точность, масштаб). Он также отфильтровывает отброшенные столбцы (которые все еще существуют в базе данных).
источник
Вы также можете проверить, используя запрос ниже
Expmple: Моя таблица имеет 2 столбца name и pwd. Даем скриншот ниже.
* Использование PG admin3
источник
Лучший способ описать таблицу, такую как столбец, тип, модификаторы столбцов и т. Д.
источник
источник
источник
1) PostgreSQL DESCRIBE TABLE с использованием psql
В инструменте командной строки psql \ d table_name или \ d + table_name, чтобы найти информацию о столбцах таблицы
2) PostgreSQL DESCRIBE TABLE с использованием information_schema
Оператор SELECT для запроса column_names, типа данных, максимальной длины символа таблицы столбцов в базе данных information_schema;
ВЫБЕРИТЕ COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH из INFORMATION_SCHEMA.COLUMNS, где table_name = 'tablename';
Для получения дополнительной информации https://www.postgresqltutorial.com/postgresql-describe-table/
источник
/ dt - это запятая, в которой перечислены все таблицы в базе данных. используя команды
/ d и / d +, мы можем получить подробную информацию о таблице. Синтаксис будет выглядеть как
* / d имя_таблицы (или) \ d + имя_таблицы
источник
Я разработал следующий скрипт для получения схемы таблицы.
источник
||
похоже на что-то вроде оператора конкатенации (объединения строк)