Wie kann ich Variablen deklarieren, in pgAdmin
Wenn ich mich in das psql-terminal, dann kann ich erklären, und verwenden Sie eine variable wie diese:
\set message_id soifsdaofisd.gmail.com;
select * from emails where message_id = ':message_id';
Wie kann ich dies in pgAdmin?
Bekomme ich eine Fehlermeldung, wenn ich jemals versuchen, diese in pgAdmin:
FEHLER: syntax-Fehler an oder in der Nähe von "CALAdkA4YC0" ZEILE 3: set message_id
soifsdaofisd.gmail.com.
InformationsquelleAutor dagda1 | 2014-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
\set
ist ein feature von psql (die interaktive Befehlszeile-terminal) und nicht in pgAdmin.PostgreSQL normalerweise nicht die Verwendung von Variablen in plain SQL. Verwenden Sie PL/pgSQL-code in einen anonymen block (
- Anweisung) oder in einem Funktion.
Jedoch, Sie kann (ab)Nutzung weitere Optionen, für die server-Seite "Variablen", unabhängig davon, welchen client Sie verwenden im moment:
Details in diesem Zusammenhang zu beantworten:
Benutzerdefinierte Variablen in PostgreSQL
Und es ist auch pgScript, eine lokale Skripting-Erweiterung in der pgAdmin-Abfrage-tool, wo Sie lokale Variablen verwenden, vergleichbar mit dem, was Sie tun können, in psql. Pro Dokumentation:
Details in der pgScript scripting language reference.
declare @mytbl, @maxid; set @mytbl = 'sometable'; set @maxid = someid; select count(*) from @mytbl where id <= @maxid;
wenn ich auf "ausführen PgScript" dieser druckt nur die SQL-Anweisung mit der Variablen ersetzt, die mit Werten im Fenster "Meldungen", aber nicht die Ergebnisse selbst.Nvm, findet die Antwort hier: postgresql.org/message-id/[email protected] Benötigen, um die Ausgabe in eine variable und drucken Sie es, so wie diese:
declare @mytbl, @maxid; set @mytbl = 'sometable'; set @maxid = 2500; set @res = select count(*) from @mytbl where id <= @maxid; print @res;
InformationsquelleAutor Erwin Brandstetter