sigisMoNd Mesaj tarihi: Haziran 6, 2009 Paylaş Mesaj tarihi: Haziran 6, 2009 umarim sql den ve su trigger olayindan anlayan vardir. bir sorum olucakti. su asagidaki 2 tablo verilmis. said: ----------- ----------- | A | | B | ----------- ----------- | a1 | a2 | | b1 | b2 | |---------| |---------| |int | 8 | |int | 2 | |int | 1 | |reg | 6 | |reg | 3 | |int | 1 | |---------| |---------| bu asagidakine gore yeni tablo olusturulacak said: CREATE TRIGGER wastutderdenn AFTER INSERT ON A REFERENCING NEW AS neuesTupel FOR EACH ROW WHEN (neuesTupel.a2 > (SELECT AVG(b2) FROM B WHERE b1=(SELECT MIN(b1) FROM B WHERE b2=(SELECT MAX (b2) from B )))) BEGIN INSERT INTO B VALUES (neuesTupel.a1, (1+(SELECT MAX (b2) FROM B ))); END; bu da cevap: said: ----------- ----------- | A | | B | ----------- ----------- | a1 | a2 | | b1 | b2 | |---------| |---------| |int | 8 | |int | 2 | |int | 1 | |reg | 6 | |reg | 3 | |int | 1 | |int | 5 | |int | 6 | |reg | 4 | |reg | 7 | |---------| |---------| mumkunse 3 yasindaki cocuga anlatirmis gibi anlatir misiniz bileniniz varsa? sorularim: oncelikle trigger tam olarak ne ise yarar? after insert, before insert cevap olarak verilecek tabloda neyi degistirir? when ile baslayan ic ice gecmis when bedingungda(sart olarak mi geciyor turkcesi bilmiyorum. bu almancasi) icten disa dogru gidilmesi gerekiyor sanirim. ama sonuc tablolarinda bu soyleneni islemleri yaptiktan sonra nasil yansiticam? reg nedir? tabloda bu iki turun herhangi bir etkisi var midir sonuc uzerinde? asama asama anlatildiginda bu sorularin hepsi cevaplanir diye dusunuyorum. bilen biri anlatirsa super olur. googleda arastirdim ama bu sekilde bir ornek bulamadim. anlatilani da pek anlayamadim acikcasi. tesekkurler Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sigisMoNd Mesaj tarihi: Haziran 6, 2009 Konuyu açan Paylaş Mesaj tarihi: Haziran 6, 2009 tablolara sonradan sirasiyla (int,5) A'ya, (int,6) B'ye ve (reg,4) A'ya ekleniyormus. soruda onu yazmayi unutmusum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Haziran 6, 2009 Paylaş Mesaj tarihi: Haziran 6, 2009 SQL bildigin ingilizce konusur gibi yazilir yahu. said: CREATE TRIGGER wastutderdenn AFTER INSERT ON A REFERENCING NEW AS neuesTupel A'ya bir sey eklendiginde said: FOR EACH ROW her bir satir icin asagidakini uygula said: WHEN (neuesTupel.a2 > [her bir satiri tek tek aliyoruz ya] a2 degeri asagidaki sonuctan buyukse BEGIN'den sonraki kismi uygula said: (SELECT AVG(b2) FROM B WHERE b1=(SELECT MIN(b1) FROM B WHERE b2=(SELECT MAX (b2) from B )))) B tablosundaki, en buyuk b2 degerini al. Sonra yine B tablosunda bu degere [en buyuk b2] sahip olan satirlardaki b1'lere bak ve en kucugunu al. Sonra yine B tablosunda, bu degere [en kucuk b1] sahip olan satirlardaki b2 degerlerinin ortalamasini bul. --Bu buldugun deger a2'deki herhangi bir satirdan buyukse asagidakini uygula said: BEGIN INSERT INTO B VALUES (neuesTupel.a1, (1+(SELECT MAX (b2) FROM B ))); END; B tablosundan en buyuk b2 degerini bul, 1 ekle, bunu A tablosunun hangi satirini isliyorsan oradaki a1'le birlikte B tablosuna ekle. --- trigger ne ise yarar... sozluk anlamina bak. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Prosciutto Mesaj tarihi: Haziran 6, 2009 Paylaş Mesaj tarihi: Haziran 6, 2009 trigger kısaca databaseinde belli bir olay olduğunda belirli bir işlemi tetikleyen bir yapı diyebiliriz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sigisMoNd Mesaj tarihi: Haziran 6, 2009 Konuyu açan Paylaş Mesaj tarihi: Haziran 6, 2009 cok tesekkurler anladim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar