Mysql Trigger Kullanmak;

Acil lazım durumlarından birinde Kayako'nun Help Destek sistemine Trigger yazmam gerekiyordu.

Durum için genel olarak source kodlara indim. Neredeyse 1.5 hafta kodlarla boğuştum ce sonra kendime kızdım tabi. O kadar Oracle, Sql server da ve Firebirde deli gibi trigger yazan herif php kodlarıyla boğuşuyordu. Mysql 5 den sonrası içn trigger sistemi geliştirmişti.

Genel çapta tabi ki anlatmıcam ama izinden gittiğim kodları yazıcam;
İki tablodan birisi açıklama birisinde de başlıklar mevcuttu. Açıklama içerisinde başlığın id değeri vardı. Başlıkta ki değişen bir değeri olduğu gibi onu tetikleyen açıklama tablosuna yazdırmam gerekiyordu. Kodlar açık ve net;

 
CREATE TRIGGER table1_insert_oncesi BEFORE INSERT ON table1 FOR EACH ROW 
BEGIN 
DECLARE son_id1 INT; 
IF NEW.id1 IS NULL THEN 
BEGIN 
SELECT MAX(id1) INTO son_id1 FROM table1; 
IF son_id1 IS NULL THEN 
SET NEW.id1 = 101; 
ELSE 
SET NEW.id1 = son_id1 + 5; 
END IF; 
UPDATE table2 SET id2=LAST_INSERT_ID(NEW.id1); 
END; 
END IF; 
END;
 


Bu kodların açıklaması ise şu; table1 de ki değişen id değeri table2 de ki yerini alıyor ;)
Öpüldünüz..
Yorumlar (0)Add Comment

Yorum yaz
daha kucuk | daha buyuk

busy


yLmz

Budur, belki anlamsız cümleleri; Belki anlamsız harfleri birleştiriyorum hayatımda,, olması gerektiği gibi yada olmasını istediğim gibi, zor olduğunu benden daha iyi kimse bilemez ama yazmak çizmek oluşturmak benim işim, bundan para kazanyorum (=

Dil Seçeneği

ismin@ylmz.com hemen al, mutlu ol! (Mailci yLmz)

Online OL

Kimler Online

Hiçbiri