Ich habe einen SQL-Befehl in PosgreSQL
Im Allgemeinen ist zwei Maschinen (wahrscheinlich unter Linux) und zwei Prozesse dann beteiligt sind, da PostGreSQL ein Client-Server-Design. Das RDBMS wird auf einem Computer ausgeführt (in einem oder mehreren Prozessen) und auf Socketverbindungen warten und Anforderungen für sie verarbeiten, sodass jeder SQL-Befehl eine eigene Anforderung hat. Die client läuft auf einer anderen Maschine (im Allgemeinen; in einigen Fällen könnte es die gleiche Computer sein) und verwendet die libpq
Bibliothek oder einen Wrapper darüber. Client und Server kommunizieren unter Verwendung von TCP/IP-Sockets auf z. einige Ethernet-Kabel.
Gibt es eine Möglichkeit einige Informationen auszudrucken nach einer Operation an stdout
Aber die stdout? Auf dem (PostGreSQL) Server-Rechner oder dem Client?
(Server und Client oben im PostGreSQL Sinne gemeint sind, wenn Sie eine Web-Anwendung codieren, zum Beispiel in PHP - oder in Ocaml mit Ocsigen -, ist es wahrscheinlich sowohl als HTTP Server fungiert und als PostGreSQL Client)
Wenn Sie eine benutzerdefinierte Nachricht auf dem Client drucken möchten, sollten Sie den SQL-Befehl ändern, um eine Liste mit Antworten zu erhalten (Ihr SQL-Befehl ist wahrscheinlich ein komplexer Komplex SELECT
). Dann können Sie eine printf
nach jeder Zeile hinzufügen, die Sie vom Server erhalten haben. Lesen Sie das Kapitel asynchronous command processing (in der Dokumentation libpq
Client-Bibliothek), die erläutert, wie Sie jede Zeile nacheinander abrufen und verarbeiten.
Wenn Sie eine benutzerdefinierte Nachricht auf dem Server Maschine ausdrucken möchten, beachten Sie, dass die stdout des Servers könnte /dev/null
weitergeleitet. Betrachten Sie in diesem Fall einige server programming interface oder einige SQL extensions.
Sobald Sie, auf welcher Seite verstanden haben (client or server, w.r.t. PostGreSQL) Sie wollen, dass die stdout Nachricht passieren, können Sie es entsprechend programmieren könnte.
warum '|| col_b1'? – Jodooomi
Wenn Sie den col_b1-Wert mit Ihrer Nachricht drucken möchten, können Sie sie verwenden. –
Wenn Sie keine Spaltenwerte drucken möchten, entfernen Sie '|| col_b1' –