Wie kann die Ausführung von Abfragen nach dem Beenden des \ e-Editors in psql verhindert werden?

8

Gibt es eine Option, die das Verhalten des Schalters psql \ e "Externen Editor beenden -> Abfrage wird automatisch ausgeführt" ändern kann? (Außer absichtlich die Abfragesyntax zu entstellen).

Noam Kremen
quelle

Antworten:

8

Fügen Sie kein Semikolon ( ;) hinzu und es geht Ihnen gut. Ich zitiere das Handbuch über die \eoder \editMeta-Befehl hier :

... wenn die Abfrage mit einem Semikolon endet (oder enthält), wird sie sofort ausgeführt. Andernfalls wird lediglich im Abfragepuffer gewartet. Geben Sie ein Semikolon ein oder \gsenden Sie es oder \rbrechen Sie es ab.

Erwin Brandstetter
quelle
0

Sie können der Abfrage jederzeit die Postgres-Kommentarzeichenfolge voranstellen:

--select foo from bar;

und die Abfrage wird nicht ausgeführt, steht jedoch im psql-Deadline-Verlaufspuffer zur Bearbeitung zur Verfügung.

marcos
quelle
0

Wenn Sie viele Anfragen und einige Semikolons haben, verwenden Sie Transaktion:

Im psql Open Editor-Modus \e:

-- at start of edited text 
BEGIN TRANSACTION;
-- ...  your requests here
-- save exit

Zurück zu psql: Ihre Anforderungen werden ausgeführt, aber Änderungen werden nicht geschrieben:

Wenn alles in Ordnung ist, speichern Sie die Änderungen mit:

COMMIT;

sonst Wenn Sie Fehler haben oder abbrechen möchten:

ROLLBACK;
DigitalTheo
quelle