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 [, ...]] ';'