it-swarm-eu.dev

Jak vypnout záhlaví pouze v psql (postgresql)

Používám PostgreSQL 9.1.X

Snažím se vytvořit skript psql pro tisk výsledků bez záhlaví, ale včetně zápatí.

http://www.postgresql.org/docs/9.1/static/app-psql.html

Z výše uvedeného dokumentu

\pset tuples_only

vypne záhlaví i zápatí. a

\pset footer off

vypne pouze zápatí.

Existuje v psql způsob, jak vypnout záhlaví a udržet zápatí?

Vím, že existuje mnoho způsobů, jak tento problém vyřešit pomocí Shell/Perl/libovolného textového nástroje, který se vám líbí, ale zajímalo by mě, proč existuje záloha pro zápatí, ale nikoli záhlaví?

id <--this line I don't want
---- <-- this line I don't want either
 1  <-- this line, yes
(1 row) <-- yes, I want it!
20
skong

Při provádění psql z prostředí Shell můžete použít volbu -t (Pouze tiskne n-tice):

$ psql -t -c "SELECT version();"
 PostgreSQL 9.5.5 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

V rámci psql pomocí \t Vypněte tiskové hlavičky a počet řádků.

14
Tombart

Moje řešení se úplně nevypíná, ale spíše zahodí záhlaví.

Můžete zkusit tail výstup dotazu:

\o | tail -n +2

Pomocí \o Můžete přesměrovat výstup do souboru nebo do kanálu, jako v tomto případě. Toto řešení má také svou chybu: alespoň v mém případě, po provedení SELECT [...], Se nevrátím do výzvy, dokud nestisknu klávesu. A první výstupní řádek se objeví po výzvě. Pokud pak přesměrujete výstup do souboru, neměl by to být problém.

Tomuto chování se lze vyhnout, pokud nastavíte environmentální proměnnou PAGER vhodně a vždy použijete pager je psql:

$ export PAGER='tail -n +3'

$ psql -U postgres -d test
psql (9.1.4, server 9.1.5)

test=# \pset pager always
Pager is always used.

test=# select * from a;
  2 | b
  3 | b
(2 rows)

Ve verzi psql, která je dodávána s PostgreSQL 9.2, můžete pro pohodlí použít příkaz \setenv (Myslím, že nemusíte nastavovat proměnnou env, která může ovlivnit i jiné aplikace).

8
dezso

Do příkazového řádku psql musíte přidat možnost -P "footer=off". Tato možnost ponechá názvy sloupců ve výsledku.

5
Karen Muñoz