MYSQL While Döngüsü Kullanımı

Merhabalar,

Yaklaşık 3 aydır yazı yazmadığımı farkettim bugün. Kafamda birkaç konu hakkında yazı yazmak varken, bir işim dolayısıyla araştırdığım ve doğru çözümü bulduğum konuda yazı yazmaya karar verdim.

Öncelikle problemim veritabanına sıralı olarak toplucak veri girişi yapmaktı. Veritabanı olmasa for döngüsü kurup işlemi halletmek aklıma geldi. Bunun MYSQL’de olup olmadığını araştırdım ve WHILE döngüsü kullanılmış bir örnekle karşılaştım. Kendi sorgumu düzenleyip işimi hallettim. Tek sorguyla 20bin satır veri girişi yapmamı sağladı.

Bahsettiğim konuyla ilgili küçük bir örnek yapalım. Öncelikle işimizi yaptırmak için MYSQL’de STORE PROCEDURE tanımlıyoruz ve sonra onu çağırıyoruz.

DELIMITER $$

CREATE PROCEDURE myproc()
BEGIN
DECLARE i int DEFAULT 1;
WHILE i <= 5000 DO
INSERT INTO tablo (kolon1, kolon2, kolon3) VALUES (i,’aaa’,’bbb’);
SET i = i + 1;
END WHILE;
END$$

DELIMITER ;

 

Öncelik yukarıdaki kodu SQL sorgusu olarak çalıştırıyoruz. Artık istediğimiz zaman çağırıp kullanabiliriz. Çağırmak için ise;

CALL myproc();

sorgusunu çalıştırıyoruz.

Peki yukarıdaki Stored Procedure ne iş yapıyor ondan bahsedelim.

Öncelikle  CREATE PROCEDURE ile myproc adında bir Store Procedure oluşturuyoruz. BEGIN yazdıktan sonra ne yapmak istediğimizi anlatıyoruz. İlk değeri 1 olan bir ‘i’ değişkeni tanımlıyoruz. Sonra WHILE döngüsünde i 5000’e eşit olana kadar döngümüzün ne yapmasını istiyorsak onu yazıyorsak. Ben örnek olarak basit bir INSERT komutu yazdım. Tanımladığımız i değişkenini kolon1’e ekliyor yukarıdaki örnek. Ardından döngülerde hep yaptığımız arttırma işlemini yapıyoruz. Ve döngümüzü END WHILE ile sonlandırıyoruz. Açtığımız END ile de BEGIN’i kapatıyoruz. Bu yazdıklarımızı SQL’de bir kere çalıştırdığımızda kaydoluyor. Ve CALL ile normal metodlar gibi çağırıyoruz.

Yazının sonuna geldik. Herkese iyi çalışmalar dilerim 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: