
Wenn ich psql
, \d <table>
oder verwende select * from XXXX
, sind die Informationen nach dem Beenden und Zurückkehren zur Shell nicht da und ich brauche sie immer, um den nächsten Befehl auszuführen. Das ist sehr, sehr ärgerlich. Gibt es eine Möglichkeit, anzugeben, psql
dass immer angezeigt wird, was ich gerade abgefragt habe, und es auf dem Bildschirm zu belassen?
Antwort1
Wenn beim Verlassen des Pagers Informationen verschwinden und Sie das nicht möchten, ändern Sie Ihre Pager-Einstellungen. Sie verwenden wahrscheinlich less
standardmäßig als Pager. Die einfachste Möglichkeit ist, die Paginierung zu deaktivieren:
\pset pager off
Die Ergebnisse werden also direkt aus dem Terminal ausgegeben. Wenn Sie dies tun, sollten Sie in Ihrem Terminalprogramm einen etwas größeren Scrollback-Puffer einrichten.
PAGER
Alternativ können Sie die Umgebungsvariable so einstellen , dass die Anzeige beim Beenden des Pagers nicht wiederhergestellt wird, z. B.:
export PAGER="less -X"
Sie können auch einen benutzerdefinierten Pager in Ihrem einrichten, .psqlrc
wenn Sie möchten, dass dieser nur wirkt psql
.
Antwort2
DasFadenscheint relevant (sinngemäß):
The pager is probably not set, see here for more info:
http://www.postgresql.org/docs/9.2/interactive/app-psql.html
Pager
Steuert die Verwendung eines Pager-Programms für Abfrage- und psql-Hilfeausgaben. Wenn die Umgebungsvariable PAGER gesetzt ist, wird die Ausgabe an das angegebene Programm weitergeleitet. Andernfalls wird ein plattformabhängiger Standard (z. B. more) verwendet.
Wenn die Pager-Option deaktiviert ist, wird das Pager-Programm nicht verwendet. Wenn die Pager-Option aktiviert ist, wird der Pager verwendet, wenn es angebracht ist, d. h. wenn die Ausgabe an ein Terminal geht und nicht auf den Bildschirm passt. Die Pager-Option kann auch auf „immer“ eingestellt werden, wodurch der Pager für alle Terminal-Ausgaben verwendet wird, unabhängig davon, ob sie auf den Bildschirm passen. \pset pager ohne Wert schaltet die Pager-Verwendung ein und aus.