PHP | Jquery | Css | Codeigniter | Unity3D


Daha önceki derslerde trigger mantığından ve kullanımından bahsetmiştik bu derste ise trigger kullanımına dair örneklerle devam edicez. Triggerda if yapısı nasıl kullanılır yeni değer nasıl alınır, eski değer nasıl kontrol edilir ve yazdığımız triggerda birden fazla satır varsa nasıl kullanırız bunları görelim. Dikkat etmeniz gereken tek şey xampp ya da wamp kullanıyosanız sürümlerinden dolayı, mesela eski sürümlerinde bazı kodlar kullanılamamaktadır bunlara dikkat etmeliyiz genelde son sürüme göre yazarsanız daha iyi olur.

  delimiter //

  CREATE TRIGGER kontrol BEFORE UPDATE ON hesap
     FOR EACH ROW
     BEGIN
         IF NEW.amount < 0 THEN
             SET NEW.amount = 0;
         ELSEIF NEW.amount > 100 THEN
             SET NEW.amount = 100;
         END IF;
     END;//

  delimiter ;


Yazdığımız kodda "kontrol" adında bir trigger oluşturduk, burda dikkat etmemiz gereken daha önceden oliturmuş olduğumuz triggerlardan birine bu ismi vermemiş olmak yoksa çakışır ve oluşturmaz. "BEFORE UPDATE hesap" hesap tablosunu güncellemeden önce anlamına gelir.

Arada koşullar gerçekleştirceksek ya da birden fazla tablo üzerinde işlem gerçekleştireceksek başta "BEGIN" sonda ise "END" kullanırız. "NEW.amount" demek yeni gelen değer yani bu tablo üzerinde güncelleme yapığımız esnada gelen yeni değerdir. başında SET kullanmasının sebebi değişken gibi davranmasıdır. Yani eğer "NEW.amount" sıfırdan küçükse değerini 0 yapar. Aynı şekilde 100 den büyükse de 100 e eşitler.

If koşulunu sonlandırmak için "END IF" kullanılır, sonlandırılmak zorundadır.

Yazdığınız trigger çalışmıyorsa başta kullanılan "delimiter //" ve sonda kullanılan "// delimiter;" ifadelerini kaldırıp deneyin çünkü bazı sürümlerde bu şekilde çalışmakadır.



Soru ve Tartışma Konularınız için;

Yayınlayan
comments powered by Disqus
Yazar: Windofelm
Description: PHP mysql trigger kullanımından bahsedelim biraz da.