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.