Konular
Link Değişimi
Php
Mysql
Html
Javascript
Windows Vista
Program Anlatımı
Internet
Google
Windows 2003 Server
Komikler
Windows Xp
Isa Server
Network
Ofis Programları
Css
Photoshop
Donanım
Joomla
Youtube Video
Diğer Konular
Jquery

Linklerimiz
Eskişehir
Luxury Boat Charter Turkey
Otel Yorum
Link Değişimi
Ekonomik Alanya Otelleri
Mavi Yolculuk Turları
Fethiye Rhodes Ferry Boats
Otel Maps
Otel iletişim
Boutique Gulets

 
MYSQL MySQL ile Trigger Oluşturma
Triggerlar ilişkili veri tabanlarında çok önemli özelliklerden bir tanesidir. Trigger'ın anlamı tetikleyici olarak bilinmektedir. Herhangi bir olay gerçekleştiğinde neleri tetikleyeceğinin belirlendiği ve tetiklenme ile nelerin yapılacağının belirtildiği bir SQL kodudur diyebiliriz.

2 çeşit trigger vardır diyebiliriz. Bunlar:

1- Insert, Update, Delete işlemleri esnasında (öncesi-sonrası) tetiklenmesi ayarlanan triggerlar.

2- Create, Drop, Alter işlemleri öncesi ve sonrasında tetiklenmek için hazırlanan triggerlardır.

İlk trigger türünü bir örnek üzerinde açıklayacak olursak:

İlk önce bir tablo oluşturalım.

MySQL> CREATE TABLE uyelik(no INT, ucret DECIMAL(10,2));



Bu tablomuzda "no" isminde int tipinde bir değişken ile "ucret" isminde decimal değerde virgülden sonra iki sayının gösterebileceği değişkenler bulunmaktadır.

MySQL> CREATE TRIGGER ins_uye BEFORE INSERT ON uyelik

FOR EACH ROW SET @sonuc = @sonuc + NEW.ucret;



Bu SQL kodumuzda "ins_uye" ismi ile bir trigger oluşturduk. Bunu uyelik tablosunu baz alarak "BEFORE INSERT ON" tetikleyicisini belirttik. Burada "BEFORE INSERT ON" = "Tabloya bir satır ekleme öncesi" koşulunu belirledik. "FOR EACH ROW SET" kelimeleri ile "@sonuc = @sonuc + NEW.ucret" işlemini her bir ekleme gerçekleştiğinde var olan sonuc değerine yeni eklenen satırdaki ucret değerinin eklenmesi söylenir.

Tablomuza birkaç veri ekleyerek sonucu görelim:

MySQL> SET @sonuc = 0;

MySQL> INSERT INTO uyelik VALUES(15,155.21),(25,526.45),(35,-500.00);

MySQL> SELECT @sonuc AS 'Toplam Eklenen Ucret';

+----------------------+

| Toplam Eklenen Ucret |

+----------------------+

| 181.66 |

+----------------------+



Update komutu ile güncelleme üzerine bir trigger belirleyelim:



MySQL> delimiter //

MySQL> CREATE TRIGGER upd_check BEFORE UPDATE ON uyelik

FOR EACH ROW

BEGIN

IF NEW.ucret < 0 THEN

SET NEW.ucret = 0;

ELSEIF NEW.ucret > 100 THEN

SET NEW.ucret = 100;

END IF;

END;//

MySQL> delimiter ;



Burada delimiter komutu kod bloğunun ayracı olarak kullanılmaktadır. "upd_check" isminde bir trigger oluşturup uyelik tablosunu baz alarak update işlemi yapacağımızı belirtmişiz. Sonrasında yapılacak işlemlere başlangıç olarak begin komutu ile başlamışız. Gerekli koşullarımızı girdikten sonra koşullar ve bloklar için kapatma komutlarını girip delimiter' ı da sonlandırıp trigger oluşturma işlemimizi bitiriyoruz.



MySQL> update uyelik set ucret='129.12' where ucret='155.21';



Yukarıdaki SQL cümleciği, uyelik tablosu içerisinde ucret değeri 155.21 olan değeri değiştirerek 129.12 yapmak için oluşturulmuştur fakat oluşturduğumuz kısıtlama sebebi ile 129.12 değeri yerine 100.00 değeri tablomuza eklenecektir. Select komutu ile tablomuzu görmeye çalıştığımızda çıktımız şu şekilde olacaktır:



+------+---------+

| no | ucret |

+------+---------+

| 15 | 100.00 |

| 25 | 526.45 |

| 35 | -500.00 |

+------+---------+



Bu trigger güncelleme (update) işlemi sırasında eğer güncellenen ucret değeri 0 değerinden küçük ise değeri 0'a eşitleyip gerekli yere ekliyor. 100'den büyük girildiğinde ise 100 değerine eşitleyip gerekli yere ekleme yapıyor.



Oluşturduğunuz triggerları ve ayarlamalarını görmek için;

MySQL> show triggers; //yazmanız yeterli olacaktır...



Oluşturulan triggerları kaldırmak için tablolarda yaptığımız gibi DROP SQL komutunu kullanmamız gerekecektir;

MySQL> DROP TRIGGER upd_check;
Böyyük Patron Tarafından 11-03-2010 Tarihinde Gönderilmiştir.   Bu Konuyu Yazdır
Kaynak : Muhammed Ali KOŞAN

 

En Son Eklenenler
php
mysql database tabloların yedeğini almak
php
SQL injectiondan korunmak için
MYSQL
MYSQL replace tablo istenilen değerleri yenisiyle değiştirmek
Diğer Konular
.htaccess ile önceden google tarafından indeklenmiş sayfaları yeni sayfaya yönlendirmek
php
MySQL bağlantısını kapatmak
php
mysql Aktif bağlantı üzerindeki oturum açmış kullanıcıyı değiştirmek
php
Bir önceki MySQL işleminden etkilenen satırların sayısını bulmak
php
PHP'DE SUPERGLOBAL DEĞİŞKENLER
php
çerez dosyasıdegiskenlerini yaratmak setcookie ()
MYSQL
mySQL veri türleri
php
sql_regcase()
php
split()
php
ereg() ve eregi()
php
ereg_replace() ve eregi_replace()
php
php Düzenli İfadelerde Özel Karakterler
php
php düzenli ifadelerde Karakter Grupları
php
Tarih ve Saat Düzenleme date() mktime()
php
php sayıları formatlayarak göstermek number_format()
php
printf() ve sprintf()
php
değişken değerinin kaç karakter olduğunu, uzunluğunu bulmak strlen()
php
karakterin ASCII değerini bulmak ord()
php
ASCII değerini belirttiğimiz karakteri bulmak chr()
php
baş ve son tarafdaki boşlukları silmek trim()
php
Dizin silme rmdir()
php
Dizin oluşturma mkdir()
php
Dizin içeriğini listeleme opendir() ve readdir()
php
Kullanımdaki dosyayı kilitlemek
php
Dosyaya yazma ve ek yapma fwrite() ve fputs()
php
fseek() ile ölçü belirleme
php
Dosya okuma: fgets() fread() ve fgetc()
php
Bir Fonksiyonu durdurmak için die()
php
Dosya açma fopen()
php
Dosya oluşturma ve silme touch() unlink()
php
Dosyaya son erişim tarihi fileadate(), filemtime() ve filectime()
php
Dosya boyutu filesize()
php
php css ve js dosyalarının cacheden okunmasını engellemek
php
Dosya çalıştırılabilir mi is_executable()
php
Dosya yazılabilir mi is_writable()
php
Dosya okunabilir mi is_readable()
php
Dosya mı, dizin mi is_file() ve is_dir()
İletişim : bpatron@codekodu.com
469307Kişi Tarafından Sitemiz Ziyaret Edilmiştir. Kişi Online
Bugün 02 Saat 03 Dakikada Sitemizi Tekil 47 Kişi Ziyaret Etmiştir.
Dün Sitemizi Tekil 305 Kişi Ziyaret Etmiştir.
Sitemizi En Çok Tekil 13-07-2010 Tarihinde 482 Kişi Ziyaret Etmiştir.
Sitemizdeki bilgilerin büyük çoğunluğu alıntıdır.İlgili yazının yazarının veya kaynak sahibinin istemesi halinde ilgili yazı sitemizden kaldırılacaktır.
Sitemizin İmalatı Böyyükpatron Tarafından Yapılmıştır.