- 3d Max Uygulamalar 5
- 3d Studio Max 11
- Açık Kaynak İşletim Sistemleri 18
- Adobe Illustrator 7
- Ajax 11
- Akıllı Tahta 1
- Algoritma 8
- Amerikan Emperyalizmi 1
- Android 5
- Apache Web Sunucusu 19
- App Inventor 2
- Arduino 12
- Asp 1
- Asp.net 1
- Autocad Dersleri 11
- Autocad Uygulamaları 16
- Bilgisayar Donanımları 54
- Bilgisayara Giriş 44
- Bilgisayara Giriş Uygulamaları 7
- Bilim 8
- Bilim Insanları 2
- Bilişim Teknolojileri 14
- Blockchain Teknolojileri 13
- Bootstrap 13
- C Dersleri 32
- C Programlama örnekleri 3
- C# Dersleri 37
- C++ Dersleri 12
- Cgı Nedir? 1
- Css 59
- Css Ugulama Örnekleri 26
- Dns 1
- Dreamweaver 175
- Dreamweaver Uygulamaları 18
- E- Ticaret 5
- Eğitici Hikayeler 22
- Elektronik 6
- Elektronik Posta (email) 12
- Firefox 37
- Fireworks 1
- Fireworks Uygulaması 3
- Flash Actionscript 10
- Flash Dersleri 8
- Flash Örnek Uygulamalar 7
- Freecad 5
- Gerekli Programlar 3
- Google Docs 22
- Google Teknolojileri 12
- Html Dersleri 59
- Hz. Muhammed ( Sav) 1
- Ileri Excel 2
- Infographics 1
- Internet 14
- İngilizce 5
- Java Applet Örnekleri 81
- Java Applet Temelleri 74
- Java Application Örnekleri 10
- Java Netbeans Ide 15
- Java Temel Örnekler 46
- Java Temelleri 159
- Javascript 100
- Javascript Uygulama 26
- Jquery 11
- Jquery Örnekleri 11
- Kişisel Gelişim 8
- Libre Office Dersleri 3
- Linux Bash Script 5
- Linux Işletim Sistemi Os 105
- Linux Server 53
- Linux Web Filter 27
- Milli Eğitim Bakanlığı 7
- Ms Excel Dersleri 8
- Ms Excel Uygulamaları 23
- Ms Word Dersleri 350
- Ms Word Uygulamaları 43
- Mssql Veri Tabanı 5
- Mysql Veri Tabanı 10
- Network 31
- Online Ücretsiz Yazılımlar 1
- Ödev Konuları 3
- Pascal 1
- Photoshop Dersleri 462
- Photoshop Uygulama Örnekleri 1
- Photoshop Uygulamaları 59
- Php Dersleri 93
- Php Uygulamaları 33
- Phpmyadmin 2
- Postgresql Veri Tabanı 63
- Power Point 2
- Programlama Dilleri 4
- Proje Hazırlama 15
- Python 9
- Qbasic 19
- Raspberry Pi 2
- React Native 14
- Regular Expressions 1
- Robotik Kodlama 2
- Scratch İle Kodlama Dersleri 84
- Seo 6
- Solidworks 2
- Teknik Servis 9
- Teknoloji 4
- Teknoloji Tasarım Uygulamaları 16
- Thinkercat 18
- Tkinter 21
- Ücretsiz Uygulamalar 1
- Veri Tabanı 78
- Web Tasarım 18
- Web Uygulamaları 1
- Windows Os 15
- Windows Server 3
- Xml 5
- Yapay Zeka 1
- Yazılım Dünyası 22
- Amerika 1
- Animasyon Örnekleri 1
- Arduino 1
- Atom Seviyesi 1
- Bakış Açısı 1
- Bilgisayar Donanımları 34
- Bilim Insanlarının Hayatı 1
- Bilişim Teknolojileri 27
- Biyoteknoloji 2
- Bootstrap 2
- Dart Dersleri 2
- Dijital Dönüşüm 1
- Doğal Enerji 1
- Eğitim Sistemi 1
- Eğitim Teknolojileri 1
- Elektronik 3
- Evren 3
- Excel Dersleri 5
- Freecad 2
- Geleceğin Araçları 2
- Geri Dönüşüm 1
- Hayvan Sevgisi 1
- Illustrator 4
- Ingilice Dersleri 1
- Insan Yetenekleri 2
- Işletim Sistemi 3
- İslam 5
- Kişisel Gelişim 2
- Marşlar 3
- Mekanik 1
- Microsoft Visual Studio 5
- Microsoft Word Dersleri 2
- Mssql Server 2
- Müslüman Mucitler 3
- Network 1
- Photoshop 12
- Php Dersleri 1
- Programlama 4
- Psikoloji 2
- Python Dersleri 4
- Robotlar 7
- Savunma Sanatları 1
- Sketchup Nedir? 7
- Şaşırtıcı Bilim 9
- Tarih 1
- Tasarımlar 9
- Teknoloji 8
- Temel Fotograf 1
- Vücud Geliştirme 3
- Web Teknolojileri 2
- Windows Sorunları 1
- Yazılım Der 1
- Yazılım Dünyası 2
- 2. Sınıf Öğrencileri İçin Sunular 1
- 5. Sınıf Öğrencileri Için Sunular 13
- 8. Sınıf Öğrencileri İçin Sunular 23
- Belirli Gün Ve Haftalar 1
- Bilgisayar Donanımları 5
- Bilgisayar Programlama 2
- Bilgisayar Yazılım 2
- Bilişim Teknolojileri Ve Yazılım Temel Bilgisayar 64
- Biyografiler 2
- Biyoloji 2
- Değerler Eğitimi 4
- Eba Elektronik Bilişim Ağı 5
- Eğitim-Öğretim Sunuları 3
- Felsefe 2
- İslam 3
- Kelime İşlemci 1
- Kişisel Gelişim 4
- Kodlama, Robotic 4
- Ortak Eğitim Proje Sunuları. 2
- Problem Çözme Ve Algoritmalar 3
- Proje Nedir? Nasıl Yapılır? 1
- Rehberlik 16
- Sağlık 3
- Savaşlar 1
- Scratch 1
- Seminerler 3
- Sınav Kaygısı 2
- Sosyal Bilgiler 1
- Sosyal Bilgiler 1
- Tarih 1
- Ulaşım Araçları 1
- Verimli Ders Çalışma 1
- Web Araçları 0
- Windows İşletim Sistemi 1
- Yarışmalar 0
- 5. Sınıf Matematik Testleri 7
- Açık Kaynak İşletim Sistemleri 5
- Açık Kaynak Office 2
- Ağ Temelleri 4
- Arduino 1
- Autocad 1
- Bilgisayara Giriş 18
- Bilişim Teknik Resimi 1
- Bilişim Teknolojilerinin Temelleri 10
- Cografya 2
- Css-javascript 4
- Flash 1
- Google Teknolojileri 1
- Görsel Programlama 1
- Html 1
- Illustrator 1
- Işletmede Beceri Eğitimi 1
- Java 5
- Javascript 1
- Libre Office 1
- Mesleki Gelişim 5
- Mobil Uygulamalar 1
- Ms Office Word 11
- Php 2
- Programlama Temelleri 5
- Python 1
- Temel Elektronik 1
- Temel Fotograçılık 1
- Veri Tabanı 4
- Web Programlama 1
- Web Tasarım 4
- Mysql Veri Tabanı
- MySQL ve Triggerlar ~ 28,245
MySQL ve Triggerlar
MySQL 5. 0 alpha'ya kadar trigger desteği bulunmayan bir veritabanı yönetim sistemi olduğundan çoğu kez bu nedenle çocukça bir uğraş olarak görülmüştür - abartmıyorum. Yeni sürümlerine entegre edilen trigger desteği sayesinde MySQL severler oldukça büyük bir huzura kavuşmuştur
İlk cevaplamamız gereken soru bu. Trigger'lar ilişkisel veri tabanlarıda belirli bir olay/durum ortaya çıktığında belirli bir işin yapılmasını sağlayan özelliklerdir. Bu işler daha önce yaratılmalı ve veritabanında saklanmalıdır.
Peki, bu prosedür ve işlemleri nerede kullanabiliriz? Hemen, örnek bir olay yaratalım. Mesela bir blogumuz olsun ve bu blogda yazıları ve yorumları tutan iki tane tablo olsun. Yazılar tablosunun aşağıdaki yapıda olduğunu farzedelim:
Posts Tablosu
Yazılar dışında bir de yorumları sakladığımız bir "comments" tablosu var demiştim. Bu tablonun yapısı ise basitçe aşağıdaki gibi olsun.
Comments tablosu
Comments üzerindeki parent_id, posts tablosundaki id'yi referans ediyor ve yorumun hangi yazı için yazıldığını belirliyor. Blogumuza her yeni yorum eklendikten sonra posts tablosundaki "count"un artması isteriz, her yorum silindiğinde ise azaltılmasını. Böyle bir durumda programlamaya başvurarak bu işi halledebiliriz, ama program dışında birileri direkten database üzerinden bir yorum silmek isterse, ayrıca manuel olarak "count" değerini de değiştirmesi gerekecektir. Bu işkenceye son vermek amacıyla trigger'lar yaratılabilinir. Aşağıda her yorum eklendiğinde ona ait yazının count'unu bir arttıran bir trigger nasıl yaratılır bunu inceleyeceğiz.
PLAIN TEXT
SQL:
1.
DELIMITER |
2.
CREATE TRIGGER mytrigger AFTER INSERT ON comments
3.
FOR EACH ROW BEGIN
4.
UPDATE posts SET count = count + 1 WHERE id = NEW.parent_id;
5.
END;
6.
| DELIMITER ;
Gördüğünüz trigger yaratma sorgusunda ilgi çeken ana hatlardan ilki "AFTER INSERT ON", bu sayede yeni yorum eklendikten sonra yapılacak bir işlem belirlemek istediğimizi belirtiyoruz. Bu anahtar kelimenin birçok versiyonu mevcut. Bu sayede hangi işlemden (DELETE, UPDATE, INSERT) önce/sonra (AFTER/BEFORE) ne yapılmasını istediğimizi emredebiliyoruz.
İkinci ilginç ve yeni kelime "NEW". NEW yeni eklenen satırı referans ediyor. Bu sayede yeni satırın istediğiniz özelliğine ulaşabiliyorsunuz. Silmelerde "NEW" yerine "OLD" kullanıldığını da ekleyeyim.
İşte hepsi bu kadar, bu trigger yaratıldıktan sonra, her yorum eklenişinde sizin programlamanız gereken kısım otomatik olarak veritabanı tarafından halledilecektir.
İlk alıştırma olarak, bu örnekte basitçe bir eklediğimiz "count"u yeniden saymayı deneyebilirsiniz. Her eklenişte ve silinişte aslında en mantıklısı yeniden tüm o yazıya ait yorumları saymaktır, ama ben kolaya kaçıyorum
tirigırların dez avantajlarıda var; olay ve tablo bazında sadece bir tirigır kullanabilirsiniz, ayrıca bu tirigırada birden fazla olay ekleyemezsiniz
Kaynak www.burcudogan.com/mysql-ve-triggerlar-76.html
28,245 Okunma Henüz yorum yapılmamış 19/10/2007 14:56:59