sql >> Databasteknik >  >> RDS >> PostgreSQL

Returnerar flera värden i en funktion

Du komplicerar saker för mycket. Eftersom du vill returnera flera värden måste du definiera funktionen som returns table eller returns setof . Jag föredrar returns table eftersom det också låter dig definiera kolumnnamnen för resultatet.

Du behöver inte heller PL/pgSQL för detta, en vanlig SQL-funktion med en UPDATE uttalande räcker:

CREATE OR REPLACE FUNCTION assign_task(IN worker text)
  returns table (id bigint)
as
$BODY$
 UPDATE queue
  SET status = 'In progress', worker = $1
  WHERE status = 'New'
  RETURNING queueid;
$BODY$
LANGUAGE sql VOLATILE;



  1. Jag vill göra group_concat i SQL Server

  2. SQL-server ignorera skiftläge i ett where-uttryck

  3. PHP 7 RC3:Hur man installerar saknad MySQL PDO

  4. Använda count(*) vs num_rows