Middle
Rozdíly mezi procedurou a funkcí
sobes.tech AI
Odpověď od AI
Procedura a funkce jsou podprogramy v databázích a programování, ale mezi nimi jsou klíčové rozdíly:
- Funkce vždy vrací hodnotu a může být použita v výrazech, například v SELECT.
- Procedura může vykonávat akce (například měnit data), ale není povinna přímo vracet hodnotu.
Příklad v SQL (PL/pgSQL):
-- Funkce vrací součet dvou čísel
CREATE FUNCTION add_numbers(a INT, b INT) RETURNS INT AS $$
BEGIN
RETURN a + b;
END;
$$ LANGUAGE plpgsql;
-- Procedura vkládá záznam do tabulky
CREATE PROCEDURE insert_user(name TEXT) AS $$
BEGIN
INSERT INTO users(username) VALUES (name);
END;
$$ LANGUAGE plpgsql;
Funkce se obvykle používají pro výpočty a vracejí výsledek, procedury — pro provádění operací, často s vedlejšími efekty.