2012-01-24 4 views
36

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

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

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

psql

и нажмите Enter . Теперь я пытаюсь:

psql \pset format aligned

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

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

Любые идеи о том, как я мог бы получить эту командную строку арг работать для меня?

+2

О Ubuntu 13/10: sudo -u postgres psql. Тогда \ c в интерактивной оболочке приводит к «Теперь вы подключены к базе данных« postgres »как пользователь« postgres ». – Timo

ответ

65

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

Пример (ниже две команды, написать первый, нажмите клавишу ввода, подождите PSQL для входа в систему, написать второй):

psql -h host -p 5900 -U username database 
\pset format aligned 
+0

обратите внимание на расположение ключевых слов, попробуйте написать его в том же порядке и он работает :) - Спасибо дорогой – ImranNaqvi

5

Использование \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
psql --pset=format=FORMAT 

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

psql --pset=format=unaligned -c "select bandanavalue from bandana where bandanakey = 'atlassian.confluence.settings';" 
-3

шагов для подключения к серверу v9.3 PostGreSQL из окон-7 командной строки следующим образом -

1. Go to the start --> All programs --> postgresql 9.3 --> Sql Shell (psql) 
2. Just enter the details requested by postgres server, I've shown log snippet from my CMD. 

(Примечание: "Postgres" пользователь будет суперпользователем для PostGreSQL сервера, Pwd должен быть указан во время установки postgresql)

Server [localhost]: localhost 
Database [postgres]: postgres 
Port [5432]: 5432 
Username [postgres]: postgres 
Password for user postgres: 
psql (9.3.5) 
WARNING: Console code page (437) differs from Windows code page (1252) 
     8-bit characters might not work correctly. See psql reference 
     page "Notes for Windows users" for details. 
Type "help" for help. 

postgres=# CREATE ROLE prateek LOGIN PASSWORD 'test_123' NOINHERIT CREATEDB; 
CREATE ROLE 
postgres=#