Stored Procedures & Functions — Database

Stored Procedures vs Functions Stored procedures dan functions adalah kode SQL yang disimpan di database dan bisa dipanggil berulang kali. Function (mengembalik

Stored Procedures vs Functions

Stored procedures dan functions adalah kode SQL yang disimpan di database dan bisa dipanggil berulang kali.

Function (mengembalikan nilai)

-- Function: menghitung diskon berdasarkan total
CREATE OR REPLACE FUNCTION hitung_diskon(total DECIMAL)
RETURNS DECIMAL AS $
BEGIN
    IF total >= 1000000 THEN
        RETURN total * 0.10; -- diskon 10%
    ELSIF total >= 500000 THEN
        RETURN total * 0.05; -- diskon 5%
    ELSE
        RETURN 0;
    END IF;
END;
$ LANGUAGE plpgsql;

-- Penggunaan
SELECT hitung_diskon(1500000); -- 150000
SELECT total, hitung_diskon(total) AS diskon FROM orders;

Stored Procedure (menjalankan operasi)

-- Procedure: transfer uang antar akun
CREATE OR REPLACE PROCEDURE transfer_uang(
    dari INT,
    ke INT,
    jumlah DECIMAL
)
LANGUAGE plpgsql AS $
BEGIN
    -- Kurangi dari pengirim
    UPDATE accounts SET balance = balance - jumlah WHERE id = dari;

    -- Cek saldo tidak negatif
    IF (SELECT balance FROM accounts WHERE id = dari) < 0 THEN
        RAISE EXCEPTION 'Saldo tidak cukup';
    END IF;

    -- Tambah ke penerima
    UPDATE accounts SET balance = balance + jumlah WHERE id = ke;
END;
$;

-- Penggunaan
CALL transfer_uang(1, 2, 500000);

Perbedaan Utama

Kapan Menggunakan?

Pertimbangan

Yang akan kamu pelajari