PostgreSQL psql терминал команда - PullRequest
45 голосов
/ 24 января 2012

Я пытаюсь заставить psql правильно отформатировать и следую за документами здесь . Прямо сейчас, когда я делаю запрос к таблицам с большим количеством столбцов, независимо от того, насколько большим я делаю свой экран, каждая строка перетекает в следующую строку и создает целый экран нечитаемого мусора.

Документы (ссылка выше) говорят, что есть способ аккуратно выровнять столбцы для более удобочитаемого вывода.

Обычно, чтобы начать psql, я просто набираю:

PSQL

и нажмите Введите . Сейчас я пытаюсь:

формат psql \ pset выровнен

И получаю ошибку:

could not change directory to "/root"
psql: warning: extra command-line argument "aligned" ingored
psql: FATAL: Indent authentication failed for user "format"

Есть идеи, как мне заставить эти аргументы командной строки работать на меня?

Ответы [ 3 ]

85 голосов
/ 24 января 2012

Это не аргументы командной строки.Запустите PSQL.Выполните вход в базу данных (при необходимости передайте имя хоста, порт, пользователя и базу данных).А затем запишите его в программу psql.

Пример (ниже приведены две команды, введите первую, нажмите enter, дождитесь входа psql, напишите вторую):

psql -h host -p 5900 -U username database
\pset format aligned
6 голосов
/ 24 января 2012

Использование \x Пример из руководства postgres:

    postgres=# \x
    postgres=# SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 3;
    -[ RECORD 1 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE branches SET bbalance = bbalance + $1 WHERE bid = $2;
    calls      | 3000
    total_time | 20.716706
    rows       | 3000
    -[ RECORD 2 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE tellers SET tbalance = tbalance + $1 WHERE tid = $2;
    calls      | 3000
    total_time | 17.1107649999999
    rows       | 3000
    -[ RECORD 3 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE accounts SET abalance = abalance + $1 WHERE aid = $2;
    calls      | 3000
    total_time | 0.645601
    rows       | 3000
4 голосов
/ 18 июля 2012
psql --pset=format=FORMAT

Отлично подходит для выполнения запросов из командной строки, например,

psql --pset=format=unaligned -c "select bandanavalue from bandana where bandanakey = 'atlassian.confluence.settings';"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...