sql >> Databáze >  >> RDS >> PostgreSQL

Vrácení více hodnot ve funkci

Zbytečně si věci komplikujete. Protože chcete vracet více hodnot, musíte funkci definovat jako returns table nebo returns setof . Preferuji returns table protože vám také umožňuje definovat názvy sloupců výsledku.

K tomu také nepotřebujete PL/pgSQL, obyčejnou SQL funkci s UPDATE stačí prohlášení:

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. Dynamicky generujte sloupce v PostgreSQL

  2. Výchozí hodnota Django modelu se v SQL nezobrazuje

  3. Jak spočítat všechny záznamy, ale načíst (LIMIT) pouze konkrétní číslo pro zobrazení?

  4. Automatické oříznutí dat CHAR při vložení do sloupce VARCHAR