Die vollständige Antwort befindet sich in der offiziellen PostgreSQL-Dokumentation.
Sie können die neue anonyme Codeblock-Funktion von PG9.0 verwenden (http://www.postgresql.org/docs/9.1/static/sql-do.html )
DO $$
DECLARE v_List TEXT;
BEGIN
v_List := 'foobar' ;
SELECT *
FROM dbo.PubLists
WHERE Name = v_List;
-- ...
END $$;
Sie können auch die letzte Insert-ID erhalten:
DO $$
DECLARE lastid bigint;
BEGIN
INSERT INTO test (name) VALUES ('Test Name')
RETURNING id INTO lastid;
SELECT * FROM test WHERE id = lastid;
END $$;