Mysql’de Trigger’lar(Tetikleyici)

Kategori: PHP ve MYSQL, Webmaster Haberler |
Tarih

Bir veritabanýna veri girmeden önce veya girdikten sonra güncelleme yaptýktan sonra yaný sorgularla anlatmak gerekirse

INSERT,UPDATE,DELETE,BEFORE,AFTER gibi deyimleri kullanabiliyoruz.

Åžimdi olayý bir de örnek üzerinden inceleyelim :



CREATE TABLE diger(witkey varchar(50));
CREATE TABLE test(veri varchar(50));
DELIMETER |
CREATE TRIGGER `test_bx` AFTER INSERT ON test
FOR EACH ROW BEGIN
INSERT INTO diger SET witkey = new.veri;
END;
|

Åžimdi yukarýdaki iþlemleri inceleyelim

1.ci satýrýmýzda Diger adýnda bir tablo oluþturduk ve içerisinde varchar türünde witkey adýnda bir column yerleþtirdik.

2.ci satýrýmýzda test adýnda bir tablo oluþturduk ve içerisine gene varchar türünde veri adýnda bir column yerleþtirdik.

Ardýndan Syntax Problemleri olmamasý ýcýn Diger sorgumuzu delimeter tanýmlayarak bunlarýn içerisinde yazdýk.

CREATE TRIGGER ile trigger’imizi oluþturduk ardýndan veritabanýmýzýn adýný yazdýktan sonra `veritabaniadi`+`_`+`kýsaltmamýz` þeklinde yazdýktan sonra AFTER INSERT yani INSERT yapýldýktan sonra tabi bu nerede ?

on test, test adlý beritabaný üzerinde ardýndan FOR EACH ROW BEGIN diyerek bunun ýcerýsýnde gerekli þartýmýz saðlandýktan sonra olacak iþlemin neler yapmasýný istiyorsak onlarý yazacaðýz.

INSERT INTO seklýnde o gelen verinin aynýsýný diger tablosunda witkey column içerisine yazdýracagýz.

Bunun için SET witkey = new.veri; ile iþlemimizi bitiriyoruz. burada witkey = veri`ye yeni girilen degeri yazdýrýyoruz.

END; ile de Åžartýmýzýn sonuclanmasý dogrultusunda yaptýgýmýz iþlemi sonlandýrýyoruz ve DELIMETERi de kapatýyoruz.

Artýk herhangi bir þekilde test adlý tablodaki veri column’una girdigimiz veri otomatik olarak witkey column’una da geçicektir.

Unutmadan, Bu sadece : 5.0.2 versiyon üzerinde çalýþýyor.

Ben bu iþlemleri 5.1.5-alpha sürümünde denedim. Gayet de güzel çalýþýyor. 5.1.5-alpha sürümü için http://www.mysql.com adresini ziyaret edin ;)

Iyi çalýþmalar,
Hazýrlayan : Onur Yerlikaya

No tag for this post.

Program indir

Yorum Yaz

Free Desktop Wallpapers