Bir önceki yazımda Stored Procedure nedir ? Avantajları nelerdir bahsetmiştim. Bu yazımda ise Sp leri Mysql ‘ de ve Laravel ile nasıl kullanılır onu anlatmaya çalışacağım.

Yukarıda mysql de nasıl bir Stored Procedure yazılır örneğini gördük. Bu kodda ki ilk satır aslında Sp ye ait bir kod değildir. Mysql deki standart ayraç olan “;” ‘ ü değiştirmeye yarıyor. Stored Procedure tanımlama mssql deki ile aynı şekilde yapılır. CREATE PROCEDURE ile sp oluşturacağımızı belirtiyoruz. Sonrasında Sp ‘i ismini yazıyoruz. BEGIN ve END blokları arasına Sp nin yapacağı sql kodlarını yazıyoruz. Böyle bir Sp oluşturmuş bulunmaktayız.

Eğer tanımladığımız Sp ye parametre göndermek istersek bunu BEGIN ve END blokları arasında DECLARE ile parametrelerimizi tanımlıyoruz. Fakat burada dikkat etmemiz gereken bir konu var. Tanımladığımız parametreler tanımlandıkları BEGIN ve END blokları arasında geçerlidir. Yazmış olduğumuz bir Sp de birden fazla BEGIN ve END blokları olabilir ve tanımlanan parametreler birbirini tanımaz.

Sp’nin çağırılması

Parametreli Stored Procedure Tipleri

Mysql de Sp ler parametreli şekilde oluşturulurken 3 farklı tipi vardır . Bunlar IN, OUT, INOUT dır.

IN yöntemini parametreye sadece değer göndereceksek kullanırız. Gönderdiğimiz değer parametreye aktarılır böyle sp içinde bilinip kullanılabilir.

OUT yöntemi parametreye dışarıdan değer gönderip sp içinde bu değişkene değer atamasını sağlayacaksak kullanırız. Sp de işlem bittiğinde tanımlanmış parametredeki değeri kullanabiliriz.

INOUT adından anlaşılacağı gibi IN ve OUT yöntemlerin birleşimi şeklinde düşünebiliriz. Hem tanımlanmış parametreye dışarıdan değer atayıp işlem sonucunda oluşan değeri kullanabiliriz.

Bu parametre gönderi tiplerine bir örnek verelim;

Laravel’ de Stored Procedur Kullanımı

Laravel ile bir uygulama geliştirdiğimizi düşünelim. Eğer kodlarımız arasında bir sp çağıracaksak bunun bir çok değişik yöntemi vardır. Basit olarak Laravel deki DB Facade nı kullanarak nasıl kullanıldığını gösterelim.

Örneklerde de görüldüğü gibi Laravel ile tanımlanmış bir mysql stored procedure in kullanımı çok basittir. Sizde projelerinizde kolaylıkla kullanabilirsiniz. İyi çalışmalar.