Browsing articles from "Kasım, 2010"
Kas
23

MySQL Procedure Kullanımı

MySQL’de performansı oldukça arttıran Procedure kullanımına bakalım.

MySQL üzerinde işlem yapmamıza olanak sağlayan oldukça faydalı bir program Navicat Database Tool for MySQL kullanmanızı tavsiye ederim.

Navicat for MySQL

Navicat for MySQL

MySQL Console içerisinde kullanacağımız veritabanını seçerek procedure yazmaya başlıyoruz.

DROP PROCEDURE IF EXIST usp_filecategorydelete
CREATE PROCEDURE `usp_filecategorydelete`(IN pCategoryID INTEGER, OUT Result INT)
 BEGIN
DELETE FROM filecategory WHERE CategoryID = pCategoryID;
SET Result = 1;
COMMIT;
END;

Şimdi procedure içerisinde yer alan kodları açıklayalım;

1- DROP PROCEDURE IF EXIST usp_filecategorydelete
2- CREATE PROCEDURE `usp_filecategorydelete`
2.1 – (IN IsSoftDelete int, IN pCategoryID INTEGER, OUT Result INT)

3- BEGIN
4- DELETE FROM filecategory WHERE CategoryID = pCategoryID;
5- SET Result = 1;
6- SELECT Result;
7- END;

  1. Procedure varsa siler, yoksa dikkate alınmaz.
  2. Procedure oluşturur.
    2.1 İlk olarak dışarıdan gelecek olan parametrenin ne tipte olacağı yazılır,IN, INOUT ve OUT olarak üç tip vardır.

    IN – parametreyi içeri alır.
    OUT – procedure sonuçlarını dışarı verir
    INOUT – hem içeriği hem dışarı değer verir

    Sonra, parametre değişkenin ismi yazılır. Son olarak parametre değişkenin veri tipi belirlenir. Bunlar MySQL veri tipleridir. (INT, BOOLEAN, VARCHAR(KarakterSayısı), TEXT vb.)

    Devamında arzu edilirse “DEFAULT Değer” şeklinde parametreye varsayılan değer atayabilirsiniz.

  3. Procedure BEGIN ile başlar.
  4. Dileğimiz SQL cümlesini artık kullanabiliriz. Dışarıdan gelen parametremizi SQL cümlesine geçebiliriz.
  5. SET komutu ile çıkış paremetremize değer atarız.
  6. Ekrana çıktı verebilmek için SELECT komutunu kullanabiliriz.
  7. Procedure END ile bitiririz.

Basit bir procedure kullanımı hakkında bilgi vermek istedim. İleriki konularda dinamik procedure oluşturma, farklı bir tablo içerisinde yer alan kayıtları kullanmayı, procedure içerisinde procedure çalıştırma hakkında çeşitli paylaşımlarım olacak.

Sigames
Turksportal
LC Waikiki
Galatasaray SK

Kategoriler

Yorumlar