Mysql-stored procedures ( Bölüm 1 )

Oldukca basit bir işlem,önce sayaca bir isim verdik bu örnekte sayacim ve daha sonra (:) yazdıktan sonra LOOP işaretini koyup işlemlerimizi yaptırdık burda sayac değeri 10 olup „LEAVE sayacim;“ elinceye kadar işleme devam ettik.Bazı kullanıcılar ne kadar basit ve anlaşılır olsada içersinde IF kullanıldıgından ve birazcıkta kodu uzattıgından LOOP yerine REPEAT kullanmayı tercih edebilirler.

->DECLARE sayac INT DEFAULT 0;
->REPEAT
->SET sayac=sayac+1;
->UNTIL sayac=10 END REPEAT;
->SELECT „saydım“;

Daha kısa ve daha anlaşılır oldu dimi.REPEAT ile döngüyü başlattık IF yerinede UNTIL kullandık. Ne zaman kondisyon yerine gelirse bir daha REPEAT'in çalışması yerine sonlandırıyor.Burda gereksiz oldugunu düşündügüm için WHİLE ve ITERATE'e yer vermedim.Sadece ITERATE biraz farklı kendisi daha çok LOOPla beraber kullanılır ve döngüye devam et anlamındadır.İlk örneğimiz üstünden gidersek.

->sayacim:LOOP
->SET sayac=sayac+1;
->IF sayac<10 THEN ITERATE sayacim END IF;
->LEAVE sayacim
->END LOOP sayacim;

Artık bu dilin bir çok şeyini ögrendiniz.Bundan sonra daha gelişmiş örnekleri ve problem çözümlerini daha ilerki yazımda vericem şimdilik biraz tavsiye ve öneri vericem.

l        STORED FUNCTIONS SQL ifadeleri içersinde kullanılabilirler ama dikkat edilmesi gereken nokta IN yada OUT yerine normal bir programlama dilindeki fonksiyonlar gibi çalışmasıdır.Tek dikkat edilmesi gereken nokta normalde fonksiyonun yanında

RETURNS   yazmamızdır.Bunun haricinde RETURN yada diğer şeyler aynıdır

l        Eğer herhangi bir şekilde MySQL'de SP yada FUNCTION oluşturamıyorsanız,

SHOW GRANTS FOR CURRENT_USER; ile gerekli izinlere sahip olup olmadığınıza bakın.Eğer gerekli izinleriniz yoksa root yada başka yetkin bir kullanıcı olarak

GRANT CREATE ROUTINE ON DATABASE  TO 'kullanıcı'@'host' IDENTIFIED BY 'şifre'; ile gerekli izni oluşturun

l        MySQL'in web sitesinden Query Analizer denilen programı indirmenizi tavsiye ederim hayat kurtaran bir programdır kendisi.

l        Çok basit ve hızlı bir şekilde Trıgger yaratmaktanda bahsedicem.Aslında gerekli herşeyi biliyorsunuz.

CREATE TRIGGER BEFORE ON FOR EACH ROW

Bundan sonrası aynı hiç bir farkı yok.Tetiklici dediğimiz şeyde  INSERT,DELETE ve UPDATE sorgularıdır.BEFORE yerine AFTER yada EACH ROW yerine başka bir şartta yazabilirsiniz

l        Daha ilerde yeniden tartışıcaz ama bir programlama dilinde SP kullanmak gayet kolaydır. Burda örneği PHP göre vericem ama diğer dillerde de aynıdır.(Not:SP'ler sadece mysqli kütüphanesiyle yada PHP Data Objects (PDO) eklentisiyle çalışabilir.

Phpde normalde bir sql sorgusunu mysqli_query(sorgu) şeklinde çalıştırıyorduk.

SP ile çagrırkende mysqli_query(„SP($degişkenler)“; şeklinde kullanıcaz gerisi aynı

Bittirirken ikinci kısım için bana yardım edin ve sorularınızı merak ettiklerinizi herşeyi çekinmeden bana yollayınız.En kısa zamanda cevap vermeye çalışıcam.Bu dökümanda ki 1 örnek haric hepsi şahsıma aittir eğer bir yerde yayınlıcaksanız alıntı yapıldıgı yeri ve ismimide eklerseniz sevinirim.

Sevgiler saygılar SANDMAN sandman@tahribat.com

Tarih:
Hit: 9072
Yazar: sandman



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.