Sobes.tech
Middle

Różnice między procedurą a funkcją

sobes.tech AI

Odpowiedź od AI

Procedura i funkcja to podprogramy w bazach danych i programowaniu, ale między nimi istnieją kluczowe różnice:

  • Funkcja zawsze zwraca wartość i może być używana w wyrażeniach, na przykład w SELECT.
  • Procedura może wykonywać działania (np. zmieniać dane), ale nie musi bezpośrednio zwracać wartości.

Przykład w SQL (PL/pgSQL):

-- Funkcja zwraca sumę dwóch liczb
CREATE FUNCTION add_numbers(a INT, b INT) RETURNS INT AS $$
BEGIN
  RETURN a + b;
END;
$$ LANGUAGE plpgsql;

-- Procedura wstawia rekord do tabeli
CREATE PROCEDURE insert_user(name TEXT) AS $$
BEGIN
  INSERT INTO users(username) VALUES (name);
END;
$$ LANGUAGE plpgsql;

Funkcje zwykle służą do obliczeń i zwracają wynik, procedury — do wykonywania operacji, często z efektami ubocznymi.