2012-01-24 38 views
36

Tôi đang cố gắng để có được psql để định dạng độc đáo và sáng theo tài liệu here. Ngay bây giờ, bất cứ khi nào tôi thực hiện truy vấn trên các bảng có nhiều cột, bất kể tôi làm cho màn hình của mình bị tràn vào dòng tiếp theo bao nhiêu và tạo ra toàn bộ màn hình không đọc được.Lệnh PostgreSQL psql terminal

Tài liệu (liên kết ở trên) cho biết có cách để căn chỉnh các cột độc đáo để có thể đọc được nhiều hơn.

Thông thường, để bắt đầu psql, tôi chỉ cần gõ:

psql

và nhấn Enter . Bây giờ tôi đang cố gắng:

psql \pset format aligned

Và nhận được một lỗi:

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

Bất kỳ ý tưởng như thế nào tôi có thể có được những args dòng lệnh để làm việc cho tôi?

+2

Trên Ubuntu 13/10: sudo -u postgres psql. Sau đó \ c trong kết quả vỏ tương tác trong "Bạn hiện đang kết nối với cơ sở dữ liệu" postgres "là người dùng" postgres " – Timo

Trả lời

65

Đây không phải là dòng lệnh args. Chạy psql. Quản lý để đăng nhập vào cơ sở dữ liệu (để vượt qua tên máy chủ, cổng, người dùng và cơ sở dữ liệu nếu cần). Và sau đó viết nó trong chương trình psql.

Ví dụ (dưới đây là hai lệnh, viết đầu tiên, nhấn Enter, chờ psql để đăng nhập, hãy viết thứ hai):

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

lưu ý sắp xếp từ khóa, cố gắng viết nó theo thứ tự và nó hoạt động :) - Cảm ơn thân yêu – ImranNaqvi

5

Sử dụng \x Ví dụ từ postgres dẫn sử dụng:

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 

Tuyệt vời để thực hiện truy vấn từ dòng lệnh, ví dụ:

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

Các bước để kết nối đến máy chủ v9.3 postgresql từ windows-7 dòng lệnh như sau -

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. 

(Lưu ý: "postgres" user sẽ là superuser cho máy chủ postgresql, Pwd phải là trang bạn đã nhập trong khi cài đặt 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=# 
Các vấn đề liên quan