Дополнительно
PostgreSQL "DESCRIBE TABLE"
Как выполнить эквивалент Oracle's DESCRIBE TABLE
в PostgreSQL (используя команду psql)?
1779
19
Как выполнить эквивалент Oracle's DESCRIBE TABLE
в PostgreSQL (используя команду psql)?
Попробуйте следующее (в инструменте командной строки
psql
):Дополнительную информацию см. в руководстве.
В дополнение к слову PostgreSQL (с\д 'что-то' или \ДТ 'стол' или \ДС 'последовательность' и т. д.)
Стандарт SQL, как показано здесь:
Это'ы поддерживается многими СУБД.
Если вы хотите получить из запроса, а не команду psql, вы можете запросить схемы каталога. Здесь'ы сложного запроса, который делает это:
в <предварительно&ГТ;&ЛТ;код&ГТ;&ЛТ;!-- язык: в SQL --&ГТ;выберите Ф.attnum как количество, Ф.attname как имя, Ф.attnum, Ф.attnotnull как notnull, pg_catalog.format_type(Ф.atttypid,Ф.atttypmod) тип Дело Когда P.contype = 'П' то 'т' Еще 'Ф' Конец как свойства primarykey, Дело Когда P.contype = 'у' то 'т' Еще 'Ф' Конец как uniquekey, Дело Когда P.contype = 'Ф' то г.relname Конец как отношения foreignkey, Дело Когда P.contype = 'Ф' то P.confkey Конец как foreignkey_fieldnum, Дело Когда P.contype = 'Ф' то г.relname Конец как отношения foreignkey, Дело Когда P.contype = 'Ф' то P.conkey Конец как foreignkey_connnum, Дело Когда Ф.atthasdef = 'т' затем D.adsrc Конец, как по умолчанию Из pg_attribute Ф Присоединяйтесь к pg_class с на C.оид = Ф.attrelid Присоединяйтесь к pg_type Т О Т.оид = Ф.atttypid Левое соединение pg_attrdef Д на D.adrelid = С. оид и D.adnum = Ф.attnum Левое соединение pg_namespace N от N.оид = С. relnamespace Левое соединение pg_constraint P на стр. conrelid = С. OID и Ф.attnum = любое (стр. conkey) Левое соединение pg_class как G на P.confrelid = г.оид Где c.relkind = 'Р'::голец И N.nspname = '%ы' -- заменить с именем схемы И C.relname = '%ы' -- заменить на имя таблицы И F.attnum &ГТ; 0 заказ по номеру ; &ЛТ;/код&ГТ;&ЛТ;/пре&ГТ;
Это'ы довольно сложным, но это не показать вам мощь и гибкость системы каталога PostgreSQL и должны получить вас на вашем пути к pg_catalog мастерство ;-). Будьте уверены, чтобы изменить элемент %S's в запрос. Первая-это схемы, второй-имя таблицы.
Это можно сделать с помощью команды psql slash:
Это также работает для других объектов:
Источник: faqs.org
psql-эквивалентом
DESCRIBE TABLE
является\d table
.Более подробную информацию смотрите в разделе psql руководства PostgreSQL.
Вы можете сделать
\д *шаблон поиска *
звездочками чтобы найти таблицы, соответствующие шаблону поиска, вы'повторно заинтересованы в.Помимо командной строки
\д+ &ЛТ;имя_таблицы&ГТ;
вы уже нашли, вы могли бы также использовать информация-схемы для просмотра данных столбца, используя info_schema.колонныЭто должно быть решение:
Вы можете использовать это :
Используйте следующую инструкцию SQL
Если вы замените tbl_name оператор и col_name, он отображает тип данных конкретного столб, что вы искали.
Этот вариант запроса (как описано в других ответах) работал для меня.
Это'ы подробно описан здесь: http://www.postgresqltutorial.com/postgresql-describe-table/
В СУБД MySQL , опишите имя_таблицы
В в PostgreSQL , \д имя_таблицы
Или , вы можете использовать эту длинную команду:
Чтобы улучшить на другой ответ'SQL-запроса С (который является большим!), вот измененный запрос. Он также включает в себя имена ограничений, информацию о наследовании, а также типы данных разбиты на Она'ы составных частей (тип, длина, точность, масштаб). Он также отфильтровывает столбцы, которые были сняты (которые все еще существуют в базе данных).
Вы также можете проверить с помощью запроса ниже
Expmple : моя таблица имеет 2 колонки наименование и pwd. Давая скриншоте ниже.
*Использование ПГ admin3 выполняет
Лучший способ описать таблицу, таких как колонны, тип, модификаторы столбцов и т. д.
/ДТ командования, который перечисляет вам всех таблиц, присутствующих в базе данных. используя команда /д И /Д+ мы можем получить подробную информацию о таблице. В sysntax будет как
Я разработал следующий сценарий, чтобы получить схему таблицы.