Ah - I think I'm starting to follow.
what i was _trying_ to do is this
get value from a column and stick it into a variable.
now select * from a _number_ of tables and return a -multi recordsets- from this single query. I'm not sure if that is the same terminology, in pgsql?
So is this possible?
-JA-
On Wed, 3 May 2023 at 23:29, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
"J.A." <postgresql@xxxxxxxxxxxxxxxxxxxxxxx> writes:
> I must admit, I did try doing something like you suggested Erik. I tried
> things like:
> DO $$
> DECLARE
> v_application_id uuid;
> BEGIN
> SELECT application_id INTO v_application_id FROM applications
> WHERE code = 'pg-test-cc';
> SELECT * FROM application_foo WHERE application_id =
> v_application_id;
> -- more SELECT * FROM child tables....
> END $$;
> but that never worked, with warning:
> 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 SQL state: 42601
Note that that is complaining about your second try, not your first.
You need to put the result of the SELECT somewhere. INTO is fine
if it's a single-row result. Otherwise, consider looping through
the result with a FOR loop. Again, there are plenty of examples
in the manual.
regards, tom lane