簡體   English   中英

如何在 psql 中設置最大列寬?

[英]How do I set maximum column width in psql?

如何在psql截斷多個長列? 我有多個列,其中一些很長,我想將它們輕松地全部放入一個終端窗口中。 \\pset format wrapped\\pset columns COLUMNS似乎適用於某些情況,但不是所有情況。 我主要關心character varying列,它似乎沒有限制它們的長度或正確包裝它們。 它僅適用於 1 個字符串的簡單情況。

我知道substr()\\x ,但這些是次優的。 我有很多列,所以每個列上的substr()太重復了。 表格輸出在這里最適合我,所以\\x不太容易查看。

例子:

正確設置尋呼機並運行psql

export PAGER=less
export LESS='-iMSx4 -RSFX -e'
psql -d db_foo

設置僅適用於最簡單的情況:

db_foo=# \pset format wrapped
Output format is wrapped.
db_foo=# \pset columns 5
Target width is 5.
db_foo=# select '01234456789 01234456789 01234456789' as foo;
 foo 
-----
 012.
.344.
.567.
.89 .
.012.
...
(1 row)

 -- OK, output is truncated.

db_foo=# select baz from table_baz limit 2;       
             baz              
-----------------------------------
 Salmon Lightweight, Galaxy v1.0.0
 Salmon quant Galaxy v0.14.1.2
(2 rows)

-- not OK, output is not truncated.

db_foo=# select '01234456789 01234456789 01234456789' as foo, baz from table_baz limit 2;
                 foo                 |             baz              
-------------------------------------+-----------------------------------
 01234456789 01234456789 01234456789 | Salmon Lightweight, Galaxy v1.0.0
 01234456789 01234456789 01234456789 | Salmon quant Galaxy v0.14.1.2
(2 rows)

-- not OK, output is not truncated - even the strings 
-- that were truncated before.

我正在運行 macOS 10.14.6,使用:

psql --version
psql (PostgreSQL) 12.3

less --version
less 487 (POSIX regular expressions)

有關的:

PostgreSQL中如何限制列的最大顯示長度
如何更改 PostgreSQL 中的最大列寬?
在 psql 中顯示 JSONB 結果時,有沒有辦法設置列的最大寬度?
在 psql 中顯示查詢結果時,有沒有辦法設置列的最大寬度?

也可以看看:

PostgreSQL:文檔:psql

columns
設置包裝格式的目標寬度,以及用於確定輸出是否足夠寬以需要分頁器或在擴展自動模式下切換到垂直顯示的寬度限制。 零(默認值)導致目標寬度由環境變量 COLUMNS 控制,如果未設置 COLUMNS,則檢測到的屏幕寬度。 此外,如果列為零,則包裝格式僅影響屏幕輸出。 如果列不為零,則文件和管道輸出也將包裝到該寬度。

問題來自\\pset wrapped (此處描述psql ):

...請注意,psql 不會嘗試包裝列標題; 因此,如果列標題所需的總寬度超過目標,則包裝格式的行為與對齊相同。

columns值設置為超過標題標題寬度的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM