Я пытаюсь изучить администрирование PostgreSQL и начал изучать, как использовать psql
инструмент командной строки.
Когда я вхожу в систему psql --username=postgres
, как мне перечислить все базы данных и таблицы?
Я попробовал \d
, d
и , dS+
но ничего не перечислено. Я создал две базы данных и несколько таблиц с помощью pgAdmin III, поэтому я знаю, что они должны быть перечислены.
postgresql
tools
psql
command-line
Jonas
источник
источник
psql -l
psql --username=postgres -l
.Ответы:
Обратите внимание на следующие команды:
\list
или\l
: список всех баз данных\dt
: список всех таблиц в текущей базе данныхВы никогда не увидите таблицы в других базах данных, эти таблицы не видны. Вы должны подключиться к правильной базе данных, чтобы увидеть ее таблицы (и другие объекты).
Для переключения баз данных:
\connect database_name
или же\c database_name
Смотрите руководство о PSQL .
источник
\c db_name
для подключения к определенной базе данных.\dt
не отображает список всех таблиц в текущей базе данных (кажется, исключая те, которые не найденыsearch_path
по крайней мере в 9.2)\dt *.
перечислит все таблицы во всех схемах, без необходимости изменять ваш путь поиска.psql -U username -l
но она не работает с косой версией.Это списки баз данных:
Это список таблиц в текущей базе данных
источник
WHERE table_schema = 'public'
потому что хочу удалить только пользовательские таблицы.В Postgresql эти команды терминала выводят список доступных баз данных.
Или команда гласит:
Эти команды выводят это на терминал:
Это доступные базы данных.
В PSQL эти команды выводят список доступных таблиц
Вы должны указать базу данных, прежде чем вы сможете перечислить таблицы в этой базе данных.
Это приведет вас к psql-терминалу:
Используйте команду,
\d
означающую показать все таблицы, представления и последовательностиЭто печатает:
Затем, чтобы выйти из терминала psql, введите
\q
и нажмите ввод. ИлиCtrl-D
делает то же самое. Это таблицы в этой базе данных.источник
\d[S+] list tables, views, and sequences
\l
это также сокращение для\list
. Существует довольно много команд слеша, которые вы можете перечислить в psql, используя\?
.источник
Чтобы получить больше информации о базе данных и списке таблиц, вы можете сделать:
\l+
перечислить базы данныха также
\d+
перечислить все таблицы в текущей схеме search_path в текущей базе данных.источник
Из pg_Admin вы можете просто запустить следующее в вашей текущей базе данных, и он получит все таблицы для указанной схемы:
Это даст вам список всех постоянных таблиц (как правило, таблиц, которые вы ищете). Вы можете получить только имена таблиц, если измените
*
подстановочный знак на простоtable_name
. Общедоступнаяtable_schema
является схемой по умолчанию для большинства баз данных, если только администратор не установил новую схему.источник
Возможно, вы вставили таблицы в схему, которой нет в пути поиска, или по умолчанию, то есть в public, и поэтому таблицы не будут отображаться с помощью \ dt. Если вы используете схему, скажем, data, вы можете исправить это, запустив
alter database <databasename> set search_path=data, public;
Выйдите и снова введите psql, и теперь \ dt также покажет вам таблицы в данных схемы.
источник
set search_path=data, public;
тоже бы