In MS-SQL können Sie beispielsweise ein Abfragefenster öffnen und Folgendes ausführen:
DECLARE @List AS VARCHAR(8)
SELECT @List = 'foobar'
SELECT *
FROM dbo.PubLists
WHERE Name = @List
Wie geht das in PostgreSQL? Kann es gemacht werden?
In MS-SQL können Sie beispielsweise ein Abfragefenster öffnen und Folgendes ausführen:
DECLARE @List AS VARCHAR(8)
SELECT @List = 'foobar'
SELECT *
FROM dbo.PubLists
WHERE Name = @List
Wie geht das in PostgreSQL? Kann es gemacht werden?
Antworten:
Die vollständige Antwort finden Sie in der offiziellen PostgreSQL-Dokumentation .
Sie können die neue Funktion zum Blockieren des anonymen PG9.0-Codes verwenden ( http://www.postgresql.org/docs/9.1/static/sql-do.html ).
Sie können auch die letzte Einfügungs- ID erhalten:
quelle
;
nachEND $$
, etwa so:END $$;
.)ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead. CONTEXT: PL/pgSQL function inline_code_block line 7 at SQL statement
quelle
:
wie bei anderen Variablen ein Präfix voranstellen dürfen , um sie zu verwenden . @ achilles-ram-nakirekanti könnten Sie ein Beispiel hinzufügen, indem Sie dies in einerselect
Anweisung verwenden, um dies klarer zu machen?Sie können verwenden:
Das wird reichen
quelle
psql
Konsole verfügbar . Sie können dies nicht in SQL Ihrer App schreiben.postgresql
und es die am wenigsten schlimmste Alternative ist. Im Allgemeinen war ich ziemlich zufrieden mitpostgresql
: aber dies ist ein überraschend großer FehlerHier ist ein Beispiel für die Verwendung einer Variablen in plpgsql:
Weitere Informationen finden Sie in den plpgsql-Dokumenten .
quelle
Ich bin auf einige andere Dokumente gestoßen, die sie verwenden
\set
zum Deklarieren von Skriptvariablen verwendet werden, aber der Wert scheint wie ein konstanter Wert zu sein, und ich finde heraus, wie sich eine Variable und keine konstante Variable verhalten kann.Ex:
Hier
sal
ist der Wert, der in der Tabelle 'emp' vorhanden ist undcomm
der konstante Wert ist.quelle
Ich musste so etwas tun
quelle
Postgresql hat keine nackten Variablen, Sie könnten eine temporäre Tabelle verwenden. Variablen sind nur in Codeblöcken oder als Benutzeroberflächenfunktion verfügbar.
Wenn Sie eine nackte Variable benötigen, können Sie eine temporäre Tabelle verwenden:
quelle
Aufbauend auf der Antwort von @ nad2000 und der Antwort von @ Pavel hier landete ich hier für meine Flyway-Migrationsskripte. Behandlung von Szenarien, in denen das Datenbankschema manuell geändert wurde.
quelle
Den offiziellen CLI-Client "psql" finden Sie hier . Und "pgAdmin3" 1.10 (noch in der Beta) hat " pgScript ".
quelle
Für die Verwendung von Variablen in beispielsweise alter table:
quelle