Mysql’de Cursor Kullanımı
Kayıtlara satır satır erişmek ve bu kayıtlar üzerinde işlem yapabilmemiz için kullanılır.Mysql de Cursorlar Stored Procedure,Trigger ve Fonksiyonlarla birlikte kullanılabilirler.Cursor bir select ifadesi için tanımlanır ve select işleminin sonucunda dönen her sutun içinbir değişken tanımlanır. Ve döngü içine sokularak bu datalar üzerinde istediğimiz işlemiyaparız. Update , insert , vs gibi.Şimdi Örnek üzerinde anlamaya çalışalım.
Root userının Call edebileceği `td_albumSongsUpdate` isimli bir procedureyarattık. Ve procedurun içinde ;id_ :int değişken tanımladık,
done : int bir değişken tanımladık default değer olarak 0 atadık.
AlbumID_:varchar(30) diye bir değişken tanımladık
Sonra cur1 isimli bir Cursor declare ettik ve SELECT id,albumID FROM Albums;sql’inin sonucunda dönen değerleri bu cursor’a atadık. Ve en son olarak dadone değişkenine select işlemi sonucu dönen satırın en sonuna ulaştığında(yani artık satır bulamadığında) done değişken değerini set edip, 1 yapmasını söyledik.Sonra cur1 ,cursorını açtık.Ve Repeat-Until döngüsü içinde done değişken değerinin1 oluncaya kadar devam etmesini söyledik.Bu döngü içinde de albumSongs tablosuna update işlemi yaptırdık ve cur1 isimli cursor’ı kapattık.Bu procedure de ise ;
Albums tablosundan 3 farklı kolon çekiliyor ama 3 farklı cursora(buradaki amaç farklı kullanımları görmek) değerler atanıyor. Ve Whiledöngüsü içinde belli kriterlere göre kontroller yapıldıktan sonra songskolonu 25 er karakterlere bölünerek td_albumSongs tablosunainsert yapılıyor.
Tayfur BÖLERDatabase Administratorwww.mysqlsupport.net