Sobes.tech
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.