Přiřazovací příkaz
Skočit na navigaci
Skočit na vyhledávání
Přiřazovací příkaz nastaví obsah proměnné na hodnotu rovnu zadanému výrazu nebo subdotazu. PL/pgPSM podporuje tři formy přiřazovacího příkazu:
- jednoduchý přiřazovací příkaz,
- simultánní složený přiřazovací příkaz,
- vícenásobný složený přiřazovací příkaz.
V simultánním složeném příkazu se jednorázově vyhodnotí pravá strana příkazu, která se přiřadí seznamu proměnných v levé části příkazu. Vícenásobný složený příkaz postupně provádí zleva seznam jednoduchých složených příkazů. Jelikož se simultánní přiřazovací příkaz vyhodnocuje efektivněji a jelikož odpovídá aktuálnímu standardu SQL/PSM preferujte jej před vícenásobným přiřazovacím příkazem. Důvodem podpory vícenásobného přiřazovacího příkazu je snaha o vyšší přenositelnost s DB2 a MySQL, které tuto formu podporují (a zatím nepodporují simultánní složený příkaz).
CREATE OR REPLACE FUNCTION foo()
RETURNS void AS
$$
BEGIN
DECLARE a, b, c int;
-- jednoduchy prirazovaci prikaz
SET a = 0; SET b = a + 1; SET c = b + 1;
-- vicenasobny prirazovaci prikaz
SET a = 0, b = a + 1, c = b + 1;
-- simultalni prirazovaci prikaz
SET (a,b,c) = (0, 0 + 1, 0 + 2);
-- prirazeni vysledku poddotazu
SET a = (SELECT f.a FROM Foo f);
SET (a, b, c) = (SELECT f.a, f.b, f.c FROM Foo f);
END;
$$ LANGUAGE plpgpsm;
Syntaxe
SET '(' promenna [, promenna [, ...]] ')' = '(' vyraz ')' ';'
SET promenna '=' vyraz [, promenna '=' vyraz [, ...]] ';'