{"id":202,"title":"SQL Notlar\u0131:  Events","content":"<p>### MySQL'de Olaylar (Events)<\/p><p>MySQL, tekrarlayan ve zamanlanm\u0131\u015f g\u00f6revleri otomatikle\u015ftirmek i\u00e7in **Olaylar (Events)** \u00f6zelli\u011fini sunar. Bu \u00f6zellik, \u00f6zellikle SQL tabanl\u0131 g\u00f6revler i\u00e7in cron benzeri bir i\u015flevsellik sa\u011flar. Bu yaz\u0131da, MySQL'de olaylar\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131, y\u00f6netilece\u011fini ve kullan\u0131laca\u011f\u0131n\u0131 ele alaca\u011f\u0131z.<\/p><p>#### 1. Olay Scheduler'\u0131 Etkinle\u015ftirme<\/p><p>Olaylar\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in \u00f6ncelikle olay scheduler'\u0131n etkinle\u015ftirilmesi gerekir. Olay scheduler'\u0131n durumunu kontrol etmek ve etkinle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki komutlar kullan\u0131l\u0131r:<\/p><p>```sql<br>SHOW VARIABLES WHERE variable_name='event_scheduler';<br>```<\/p><p>E\u011fer sonu\u00e7 `OFF` ise, olay scheduler'\u0131 etkinle\u015ftirmek i\u00e7in:<\/p><p>```sql<br>SET GLOBAL event_scheduler = ON;<br>```<\/p><p>#### 2. Olay Olu\u015fturma<\/p><p>Olaylar, belirli bir zaman aral\u0131\u011f\u0131nda veya belirli bir tarihte otomatik olarak \u00e7al\u0131\u015facak \u015fekilde planlanabilir. A\u015fa\u011f\u0131da, iki farkl\u0131 olay \u00f6rne\u011fi bulunmaktad\u0131r:<\/p><p>##### \u00d6rnek 1: G\u00fcnl\u00fck Olay<\/p><p>Bu olay, her g\u00fcn belirli bir saatte \u00e7al\u0131\u015f\u0131r ve 7 g\u00fcnden eski mesajlar\u0131 siler:<\/p><p>```sql<br>DROP EVENT IF EXISTS `delete7DayOldMessages`;<br>DELIMITER $$<br>CREATE EVENT `delete7DayOldMessages`<br>ON SCHEDULE EVERY 1 DAY STARTS '2023-10-01 00:00:00'<br>ON COMPLETION PRESERVE<br>DO BEGIN<br>&nbsp; &nbsp;DELETE FROM theMessages<br>&nbsp; &nbsp;WHERE DATEDIFF(NOW(), updateDt) &gt; 6; -- 7 g\u00fcnden eski kay\u0131tlar\u0131 siler<br>END$$<br>DELIMITER ;<br>```<\/p><p>##### \u00d6rnek 2: Her 10 Dakikada Bir \u00c7al\u0131\u015fan Olay<\/p><p>Bu olay, her 10 dakikada bir \u00e7al\u0131\u015f\u0131r ve 1 haftadan eski mesajlar\u0131 siler:<\/p><p>```sql<br>DROP EVENT IF EXISTS `Every_10_Minutes_Cleanup`;<br>DELIMITER $$<br>CREATE EVENT `Every_10_Minutes_Cleanup`<br>ON SCHEDULE EVERY 10 MINUTE STARTS '2023-10-01 08:08:08'<br>ON COMPLETION PRESERVE<br>DO BEGIN<br>&nbsp; &nbsp;DELETE FROM theMessages<br>&nbsp; &nbsp;WHERE TIMESTAMPDIFF(HOUR, updateDt, NOW()) &gt; 168; -- 1 haftadan eski kay\u0131tlar\u0131 siler<br>END$$<br>DELIMITER ;<br>```<\/p><p>#### 3. Olaylar\u0131n Durumunu G\u00f6r\u00fcnt\u00fcleme<\/p><p>Olu\u015fturulan olaylar\u0131n durumunu g\u00f6r\u00fcnt\u00fclemek i\u00e7in a\u015fa\u011f\u0131daki komutlar kullan\u0131l\u0131r:<\/p><p>```sql<br>SHOW EVENTS FROM my_db_name; &nbsp;-- Belirli bir veritaban\u0131ndaki olaylar\u0131 listeler<br>SHOW EVENTS; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- T\u00fcm olaylar\u0131 listeler<br>SHOW EVENTS\\G; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- Olaylar\u0131 daha detayl\u0131 bir \u015fekilde listeler<br>```<\/p><p>**\u00d6rnek \u00c7\u0131kt\u0131:**<br>```<br>*************************** 1. row ***************************<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Db: my_db_name<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Name: delete7DayOldMessages<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Definer: root@localhost<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Time zone: SYSTEM<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Type: RECURRING<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Execute at: NULL<br>&nbsp; &nbsp; &nbsp;Interval value: 1<br>&nbsp; &nbsp; &nbsp;Interval field: DAY<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Starts: 2023-10-01 00:00:00<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ends: NULL<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Status: ENABLED<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Originator: 1<br>character_set_client: utf8<br>collation_connection: utf8_general_ci<br>&nbsp;Database Collation: utf8_general_ci<br>```<\/p><p>#### 4. Olaylar\u0131 Silme<\/p><p>Bir olay\u0131 silmek i\u00e7in `DROP EVENT` komutu kullan\u0131l\u0131r:<\/p><p>```sql<br>DROP EVENT someEventName;<br>```<\/p><p>#### 5. Olaylar\u0131n Avantajlar\u0131 ve Dikkat Edilmesi Gerekenler<\/p><p>- **Avantajlar:**<br>&nbsp;- Olaylar, tekrarlayan g\u00f6revleri otomatikle\u015ftirir ve manuel m\u00fcdahaleye gerek kalmaz.<br>&nbsp;- SQL tabanl\u0131 g\u00f6revler i\u00e7in cron benzeri bir i\u015flevsellik sunar.<br>&nbsp;- Olaylar, karma\u015f\u0131k SQL sorgular\u0131n\u0131 ve DML\/DDL i\u015flemlerini i\u00e7erebilir.<\/p><p>- **Dikkat Edilmesi Gerekenler:**<br>&nbsp;- Olaylar, kullan\u0131c\u0131 taraf\u0131ndan \u00e7a\u011fr\u0131lmaz, bu nedenle ba\u015far\u0131s\u0131z olurlarsa sessizce ba\u015far\u0131s\u0131z olurlar.<br>&nbsp;- Olaylar\u0131n \u00e7al\u0131\u015fma s\u00fcreleri ve aral\u0131klar\u0131 dikkatlice planlanmal\u0131d\u0131r.<br>&nbsp;- Olaylar\u0131n performans \u00fczerindeki etkisi g\u00f6z \u00f6n\u00fcnde bulundurulmal\u0131d\u0131r.<\/p><p>#### Sonu\u00e7<\/p><p>MySQL'de olaylar, tekrarlayan ve zamanlanm\u0131\u015f g\u00f6revleri otomatikle\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu \u00f6zelli\u011fi kullanarak, veritaban\u0131 y\u00f6netimini daha verimli hale getirebilir ve manuel m\u00fcdahaleleri en aza indirebilirsiniz. Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015fmek \u00fczere!<\/p>","excerpt":"MySQL, tekrarlayan ve zamanlanm\u0131\u015f g\u00f6revleri otomatikle\u015ftirmek i\u00e7in Olaylar (Events) \u00f6zelli\u011fini sunar. Bu \u00f6zellik, \u00f6zellikle SQL tabanl\u0131 g\u00f6revler i\u00e7in cron benzeri bir i\u015flevsellik sa\u011flar. Bu yaz\u0131da, MySQL'de olaylar\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131, y\u00f6netilece\u011fini ve kullan\u0131laca\u011f\u0131n\u0131 ele alaca\u011f\u0131z.","created_at":"2025-01-13 15:35:27","updated_at":"2026-09-06 20:32:30","category_id":9,"view_count":531,"reading_time":4,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 15:35:27","featured_image":"resimyok.jpg","slug":"sql-notlari-events","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim"}