Sobes.tech
Middle

Rozdiely medzi procedúrou a funkciou

sobes.tech AI

Odpoveď od AI

Procedúra a funkcia sú podprogramy v databázach a programovaní, ale medzi nimi existujú kľúčové rozdiely:

  • Funkcia vždy vracia hodnotu a môže byť použitá v výrazoch, napríklad v SELECT.
  • Procedúra môže vykonávať akcie (napríklad meniť údaje), ale nie je povinná priamo vracať hodnotu.

Príklad v SQL (PL/pgSQL):

-- Funkcia vracia súčet dvoch čísel
CREATE FUNCTION add_numbers(a INT, b INT) RETURNS INT AS $$
BEGIN
  RETURN a + b;
END;
$$ LANGUAGE plpgsql;

-- Procedúra vkladá záznam do tabuľky
CREATE PROCEDURE insert_user(name TEXT) AS $$
BEGIN
  INSERT INTO users(username) VALUES (name);
END;
$$ LANGUAGE plpgsql;

Funkcie sa zvyčajne používajú na výpočty a vracajú výsledok, procedúry — na vykonávanie operácií, často s vedľajšími efektmi.