Ülevaade
Sündmusteks (i.k. Events) kutsutakse andmebaasi objekte, mis sisaldavad SQL laused, mida käivitatakse hiljem kas regulaarselt või ühekordselt. Sisuliselt on tegemist crontab-ga, mis täidetakse otse andmebaasi serveris. Kasulik on see näiteks vanemate andmete arhiveerimiseks, logide kustutamiseks jms.
Event privileeg
Enne uue sündmuse lisamist tuleb kontrollida, et andmebaasi kasutajal on lubatud Event privileeg. Kui Event privileeg on olemas, siis tekib phpMyAdmin-i Sündmused (ik. Events) menüüpunkt. Kui see puudub, siis kasutajal Event õigusi ei ole.
Sündmuse lisamine
Sündmuseid on kõige lihtsam lisada kasutades phpMyAdmin rakendust. Vali Sündmuste saki all Lisa sündmus
ja täida infoga:
Ülevalolevas näites lisatakse perioodiline sündmus (Sündmuse tüüp RECURRING), mis käivitatakse kord nädalas. Kui valida tüüp ONE TIME, siis käivitatakse päring Algusajal etteantud ajal vaid ühe korra.
Sündmusele on võimalik soovi korral määrata ka ajavahemik, millal seda päringut käivitatakse. Selleks tuleb täita nii Algus kui ka Lõpp aeg.
Lõpetamisel säilita linnuke tähendab seda, et peale sündmuse tööde lõppu, jääb päring alles, mida saab tulevikus uuesti muuta ja taaskasutada.
Sündmuse deaktiveerimine
Kui sa ei soovi, et perioodilist päringut enam ei käivitataks, siis on võimalik selle olek muuta DISABLED või kogu sündmuse töö kustutada.
Kustutamise päringu koostamine
Selleks, et koostada korrektne kustutamise päring, tuleb analüüsida tabeli struktuuri, et näha kuidas on salvestatud rea lisamise aeg. Üldjuhul on kasutusel UNIX TIMESTAMP või DATETIME tüüpi aja väljad. Ülevalolev näide töötab DATETIME tüüpi ridade kustutamisel. Kui soovid kustutada UNIX TIMESTAMP tüüpi ridu, siis on kõige lihtsam korrutada sekundid soovitud kustutamise päevade arvuga ja lahutada see unix timestamp numbrist.
Näiteks 30 päeva ja vanemad read saab nii:
SELECT * FROM `errors` WHERE `unix_t` < UNIX_TIMESTAMP() - (60 * 60 * 24 * 30);
Enne DELETE päringu käivitamist on alati soovitav SELECT päringuga vaadata, mis päringud WHERE-ga valitakse. Kui valitakse õiged, siis alles asenda SELECT DELETE-ga.
Rohkem infot leiab ametlikust MariaDB dokumentatsioonist.