![]() | |
| | #1 (permalink) |
| cevizin en küçük avatarı Üyelik Tarihi: 04/2004
Mesaj: 1,540
|
Birkaç gündür google içinde binlerce sorgu yapmışımdır ama sanırım mysql de TRIGGERS yeni bir özellik olduğu için yeterli bilgiye tam olarak ulaşamadım!.. Soru 1. Bir TRIGGERS oluşturduğumuzda bu nerde depo ediliyor ? Çünkü ben veritabanının yedeğini aldığımda içinde oluşturduğum TRIGGERS göremedim. Mysql içinde information_schema diye bir tablo var...onun içinde TRIGGERS tablosunda bunları görebiliyorum ama aldığım yedek içinde bunlar görünmüyor.. -Yedek almak istediğinizde bunların nasıl yedeğini alıyorsunuz ? Soru 2. Bir TRIGGERS oluşturduğumda daha sonra bunda bazı değişiklikler yapmak durumunda kalabiliyor insan.. fakat önceki yaptığınız TRIGGERS ekrana bir türlü çağırıp ne yaptığınıza bakamıyorsunuz ve sanıyorum ki oluşturulan TRIGGERS update edilemiyor onun yerine eskisini kaldırıp yenisi eklemek lazım..ama bir sürü TRIGGERS oluşturduğunuzda eskisi aklınızda olmuyor ki mutlaka TRIGGERS ekrana taşımak lazım... -Daha önce TRIGGERS kullananlar bu tip problemler için nasıl çözümler geliştirmiş olabilirler? Soru 3. Mysql TRIGGERS da kitleme mekanizması nasıl çalışıyor... Örneğin: Ben tablonun sadece bir alnın değiştirildiğinde TRIGGERS çalışmasını istiyorum..tablo.alan1 değiştimi TRIGGERS tetiklenmeli.. ama sanıyorum ki mysql de tablonun herhangi alanı değiştirildiğinde TRIGGERS tetikleniyor.. -Ben mi yanlış biliyorum yoksa update yapılırken bu alanı belirttiğimizde TRIGGERS ona göre mi tetikleniyor ?
__________________ Sarp Pirilti Yap Olsun...olmuyorsa başka bir yol/şey dene ve devam et Enson 18/08/2006 20:54 tarihinde pirilti tarafından düzenlenmiştir.. |
| | |
| | #2 (permalink) |
| cevizin en küçük avatarı Üyelik Tarihi: 04/2004
Mesaj: 1,540
|
Mysql trigger ilgili yeterli döküman bulamıyorum..Özellikle update yaparken çıkan problemlerle ilgili yeterli döküman bilen varmı?
__________________ Sarp Pirilti Yap Olsun...olmuyorsa başka bir yol/şey dene ve devam et |
| | |
| | #3 (permalink) |
| cevizin en küçük avatarı Üyelik Tarihi: 04/2004
Mesaj: 1,540
|
Ben birkaç şey yazayım.. Mysql trigger düşünüldüğü gibi cafcaflı birşey değil çünkü... Tetiklemeleri tablo alanlarına göre sınırlayamıyorsunuz.. her güncelemede tetikler çalışıyor oysa siz tablonuzda sadece bir alan değiştirildiğinde tetikleme olsun isteyebilirsiniz... İkinci en kötü yan ise mysql triggerda tetiklenen tablo kendini tetikleyemiyor.. Yani tablonuda bir alan değiştirildiğinde işlem yapıp tekrar aynı tablonuza bağlanıp yeni değerleri giremiyorsunuz.. Henüz mysql yolun çoook başaında...
__________________ Sarp Pirilti Yap Olsun...olmuyorsa başka bir yol/şey dene ve devam et |
| | |
| | #4 (permalink) | |
| Cevizci Üyelik Tarihi: 07/2006 Yer: İstanbul
Mesaj: 339
| Alıntı:
bu ilk problemini de çözer, triggerın içine if koyarsın if (OLD.kolonadi != NEW.kolonadi) şeklinde böylece sadece kolonadi değiştirildiği zaman trigger çalışmış olur trigger'ı create ederken kullandığın kodu görmek için SHOW TRIGGER triggeradi şeklinde bir dene daha önce yapmıştım bir şekilde ama emin değilim bu olduğundan | |
| | |
| | #5 (permalink) |
| cevizin en küçük avatarı Üyelik Tarihi: 04/2004
Mesaj: 1,540
|
Evet sorunu o şekilde çözmüştüm ama update yapılan tabloya tekrar erişim olmuyor.. Ayrıca sorunun bu şekilde çözülmesi basite kaçıştır if (OLD.kolonadi != NEW.kolonadi) Çünkü tablonuzda yüzlerce alan olabilir ve siz sadece bir alan için tetikleme çalıştırmak isterken tabloda değişen her alan için tetik çalışır birde koşul ifadeniz okadarda kısa olmaya bilir ve eğer koşul ifadenizde çok uzun ise tablo da değişebilecek alan x koşul ifade sayısı kadar gereksiz bir yavaşlama ve tablo kitlenmesiyle karşılaşırsın ki buda benim için mysql trigger vasatın altına indirir...Sırf bunun için postgresql geçilmez ama gelişmiş veri tabanıyla işini gören veritabanı arasındaki bariz fark bu olsa gerek... İkinci olay dahada saçma kendi kendini tetikleyen tabloların önünü mysql daha baştan kesmiş...eğer bir tabloya triggerle erişiyorsan trigger ikinci defa aynı tabloya erişimi kapatıyorki sonsuz döngüye girmesin...Oysaki triggerin en büyük uygulamaları zincir tetiklerden oluşur.... SHOW TRIGGER triggeradi ihtiyaca cevap vermiyor çünkü sadece triggerin göbeğini getiriyor, yani ben şöyle birşey yapamıyor; Hey mysql kardeş sen şu triggeri getir bakalım hıım bumuymuş bizim triggerimiz bunda şu eksiklikler var bla bla bla tamam şimdi oldu bunu tekrar yükle bakalım.. Mysql in ceabı : ııhhh yapamamPeki ne yapabilirsin.. eskisini sil yenisini yaz.. Sonuç benim için mysql 5.0 la gelen özellikle sadece göz boyamak. İşimiz görülsün yeter mantığı...çok fazla gitmez..çünkü herşey giderek karmaşıklaşıyor..Ayrıntılara girmeyerek hız kazanma mantığının sonu yakındır.
__________________ Sarp Pirilti Yap Olsun...olmuyorsa başka bir yol/şey dene ve devam et |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| PHP&MYSQL Tabanlı Siteler için taşınma El Kitabı /TELNET/SSH/MySQL 4.1/DUM/UTF-8 | Grafik | PHP | 20 | 16/11/2008 14:47 |
| Mysql 4.3 den Mysql 5.0 geçerken hata! | pirilti | Veritabanları & SQL | 6 | 10/08/2006 16:13 |
| Mysql Sorunu(Mysql bilgisayarımda çalışmıyor) | Panteray | Veritabanları & SQL | 3 | 17/05/2006 19:30 |
| mysql dediki :'/var/lib/mysql/mysql.sock' | fgenc | Veritabanları & SQL | 6 | 15/12/2004 16:51 |
| Hata mesaji: To access your MySQL database, you can use the Mysql.pm module. | alize | Veritabanları & SQL | 1 | 26/02/2004 12:27 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |