PostgreSQL'de Saklı Prosedürler Nasıl Oluşturulur

Postgresql De Sakli Prosedurler Nasil Olusturulur



PostgreSQL ile çağrıldığında yürütülmesi gereken çeşitli rutinleri tanımlayan saklı prosedürler oluşturmak mümkündür. Bu rutinler, veritabanınızda tanımlı görevleri gerçekleştiren SQL ifadelerinden oluşur. Örneğin, çağırdığınızda tablonuzdaki değerleri güncelleyen bir saklı yordam oluşturabilirsiniz.

Saklı prosedürler veritabanı optimizasyonuna ve yeniden kullanılabilirliğin arttırılmasına yardımcı olur. Aynı sorguyu yürütmek zorunda kalmak yerine görevi, gerektiğinde çağıracağınız saklı yordam olarak oluşturabilirsiniz. Bu yazının sonunda saklı prosedürler hakkında her şeyi öğreneceksiniz.

PostgreSQL'de Saklı Prosedürlerle Çalışmak

Bir PostgreSQL kullanıcısı olarak PostgreSQL işlevlerinin işlem yürütmediğini fark etmiş olabilirsiniz. Bir işlem oluşturmak mümkün olsa da, işlemin gerçekleştirilmesi veya önceki durumuna geri döndürülmesi mümkün değildir. Ancak bu sınırlamalar saklı yordamlar kullanılarak atlanır.







PostgreSQL'de saklı prosedür oluşturmak için temel sözdizimi aşağıda verilmiştir:



PROSEDÜRÜ OLUŞTURUN VEYA DEĞİŞTİRİN prosedür_adı(

parametre[ler] data_type

)

DİL plpsql;

$$ OLARAK

İLAN ETMEK

değişkenler_if_any veri_tipi

BAŞLAMAK

mantık

SON;

$$

Verilen sözdiziminde dikkat edilmesi gereken önemli noktalar, saklı yordam için kullanacağınız ad olan 'prosedür_adı', dahil etmek istediğiniz parametreler ve bunların veri türleri ve esas olarak SQL ifadelerinden oluşan mantıktır.



PostgreSQL'de saklı yordamların nasıl oluşturulacağını anlamanıza yardımcı olacak üç örnek verelim.





Örnek 1: Bir Sayının Karesini Hesaplamak için Saklı Prosedür

İlk örneğimiz için, çıktıyı terminale yazdırmanın bir yolu olarak “RAISE NOTICE” ifadesini kullanan bir saklı prosedür oluşturuyoruz. Saklı yordam, çağırırken verdiğiniz tamsayı değerini alır ve karesini hesaplar.

Saklı yordamı şu şekilde oluşturuyoruz:



Parametremizi “num1” olarak adlandırıyoruz ve bu bir tamsayı. Mantık kısmında “num1”in karesini nasıl aldığını ve bunu kare değişkeni olarak nasıl sakladığını tanımlıyoruz. Komutu çalıştırdığımızda, saklı yordamı başarıyla oluşturmayı başardığımızı doğrulayan “CREATE PROCEDURE” çıktısını alıyoruz.

Bir sonraki görev prosedürü çağırmak ve ona beklenen argümanı vermektir.

CALL prosedür_adı(argümanlar);

Saklı prosedürün yürütüldüğünü gösteren CALL çıktısını alacaksınız ve bu durumda eklediğimiz argümanın karesi olan beklenen çıktıyı alıyoruz.

Örnek 2: Değerleri Tablo Girişine Eklemeye Yönelik Saklı Prosedür

Aşağıdaki iki örnek, bir veritabanı tablosuyla çalışan bir saklı yordamın nasıl oluşturulacağını gösterir. Çalışacağımız “öğrenciler” tablosunu hızlıca oluşturalım.

Bu örnekte, kullanıcının değerleri yeni oluşturulan tabloya eklemesine olanak tanıyan bir saklı prosedür oluşturuyoruz. Saklı yordamı çağırdığımızda bağımsız değişken olarak eklenmesini beklediğimiz parametreleri nasıl belirttiğimize dikkat edin. Ayrıca eklenen argümanları alıp “öğrenciler” tablosuna INSERT SQL deyimini çalıştıran mantığı da tanımlıyoruz.

Aşağıdaki komutu çalıştırarak mevcut saklı yordamları kontrol edebiliriz:

\df

Aşağıdaki çıktıda görebildiğimiz ilk saklı prosedür daha önce oluşturduğumuz “add_student”tir.

Şimdi, yürütmek için saklı yordamı çağıralım. Aşağıdaki resimde nasıl boş bir tablomuz olduğu gösterilmektedir, ancak ilk öğrenciyi eklemek için saklı yordamı çağırdık:

Tablomuzdaki değerleri listelersek, çağrı prosedürü komutuyla eklediğimiz argümanların tablomuzdaki ilk öğrencimizin değerleri olduğuna dikkat edin. Değerleri bir tabloya eklemek için saklı yordamı bu şekilde oluşturursunuz.

Saklı yordamı oluştururken, belirttiğiniz parametrelerin hataları önlemek için tablonuzda beklenenlerle eşleşmesi gerektiğini unutmayın. Ayrıca veri tipinin de eşleşmesi gerekmektedir.

Örnek 3: Tablo Girişini Güncellemek İçin Saklı Prosedür

Devam edelim, bir tablo girişini güncelleyen başka bir saklı prosedür oluşturalım. Tablomuzdaki değerleri hızlı bir şekilde güncellemek istiyorsanız aşağıdaki gibi bir güncelleme saklı yordamı oluşturabilirsiniz:

WHERE anahtar sözcüğünü kullanarak hangi sütunu güncellemek istediğinizi ve SET anahtar sözcüğünü kullanarak yeni değeri belirtin. Daha sonra değişiklikleri sürdürmek için COMMIT anahtar sözcüğünü eklemelisiniz.

Güncelleme saklı prosedürünü çağıralım ve beklenen argümanları ekleyelim: 'öğrenci_kimliği' ve yeni ders.

Girişleri tablomuzda listelersek, hedeflediğimiz öğrenci için güncellenmiş kursa sahip olduğumuzu doğrulayabiliriz. Güncelleştirme saklı yordamı bu şekilde çalışır.

Çözüm

PostgreSQL'de herhangi bir saklı yordam oluşturabilirsiniz. Takip edilecek sözdizimini anlamanız ve ardından saklı yordam için mantığınızı tanımlamanız yeterlidir. Buradan saklı yordamı çağırın ve beklendiği gibi yürütüldüğünü doğrulayın. Bu yazı PostgreSQL'deki saklı yordamları açıkladı ve bunların nasıl oluşturulacağına dair örnekler verdi.