1. Home
  2. Tekninen
  3. MariaDB / MySQL
  4. MySQL/MariaDB-tapahtumat

MySQL/MariaDB-tapahtumat

MySQL/MariaDB-tapahtumat ovat tietokantaobjekteja, jotka sisältävät SQL-käskyjä, jotka suoritetaan myöhemmin joko säännöllisesti tai kerran. Pohjimmiltaan se on kuin crontab, joka suoritetaan suoraan tietokantapalvelimella. Tästä on hyötyä esimerkiksi vanhojen tietojen arkistointiin tai lokien poistamiseen.

Tapahtuman etuoikeus

Ennen uuden tapahtuman lisäämistä on tarpeen tarkistaa, onko tietokannan käyttäjällä Tapahtuma-oikeus. Jos Tapahtuma-oikeus on olemassa, Tapahtumat-valikkokohta näkyy phpMyAdminissa. Jos valikkokohta puuttuu, käyttäjällä ei ole tapahtuman oikeuksia.

MySQL/MariaDB-tapahtumat ovat tietokantaobjekteja, jotka sisältävät SQL-käskyjä, jotka suoritetaan myöhemmin joko säännöllisesti tai kerran.

Tapahtuman lisääminen

Helpoin tapa lisätä tapahtumia on käyttää phpMyAdmin-sovellusta. Valitse Events-välilehden Add event -linkki. Avautuvassa ikkunassa sinun on täytettävä:

MySQL/MariaDB-tapahtuman lisääminen.

Yllä olevassa esimerkissä on lisätty toistuva tapahtuma (Tapahtuman tyyppi: RECURRING), joka käynnistyy kerran viikossa. Jos valitset tyypin ONE TIME, kysely suoritetaan vain kerran määritettynä aloitusaikana.

Voit halutessasi asettaa tapahtumalle aikavälin. Voit tehdä tämän täyttämällä sekä alkamis- että päättymisajan.

“Säilyttäessä” -valintaruudun valinta tarkoittaa, että tapahtuman tehtävien suorittamisen jälkeen kysely pysyy ennallaan, joten sitä voidaan muokata ja käyttää uudelleen tulevaisuudessa.

Suositus

Ennen kuin lisäät tapahtuman, testaa kysely varmistaaksesi, että se on oikein ja suorittaa juuri sen, mitä tarvitaan!

Tapahtuman käytöstä poistaminen

MySQL/MariaDB-tapahtumat saa myös pois päältä, jos et enää halua säännöllisen kyselyn suoritettavan, voit muuttaa sen tilaksi DISABLED tai poistaa koko tapahtuman.

Poistokyselyn luominen

Oikean poistokyselyn laatimiseksi sinun on analysoitava taulukon rakenne nähdäksesi, kuinka lisäysaika on tallennettu. Tyypillisesti käytetään UNIX TIMESTAMP- tai DATETIME-tyyppisiä kenttiä. Yllä oleva esimerkki toimii DATETIME -tyypin rivien poistamiseen. Jos haluat poistaa rivejä UNIX TIMESTAMP -tyypin kanssa, yksinkertaisin tapa on kertoa sekunnit halutulla poistopäivien määrällä ja vähentää se UNIX -aikaleiman numerosta.

Esimerkiksi rivit, jotka ovat 30 päivää tai vanhemmat, voidaan poistaa seuraavasti:

SELECT * FROM `errors` WHERE `unix_t` < UNIX_TIMESTAMP() - (60 * 60 * 24 * 30);

Ennen DELETE-kyselyn suorittamista on aina suositeltavaa käyttää SELECT-kyselyä nähdäksesi, mitkä rivit on valittu WHERE -lauseella. Jos oikeat rivit on valittu, vaihda SELECT arvolla DELETE.

Lisätietoja löytyy virallisesta MariaDB-dokumentaatiosta.

Updated on 24. Oct 2024
Was this article helpful?

Related Articles