Segítségével triggerek mysql adatbázis

Trigger (angol ravaszt.) - tárolják összeállított SQL-eljárás, amely nem közvetlenül hívható, és lefut, amikor egy bizonyos esemény történik az adatbázisban (beszúrás, törlés, frissítés iratok). Támogatás a kiváltó MySQL kezdődött 5.0.2

A tárolt eljárások futnak minden környezetben, és nincs szükség újjáépíteni logika. Mivel már létrehozott egy tárolt eljárást, nem számít, milyen alkalmazást használ, hogy hívja meg az eljárást. Azt is, hogy nem számít, milyen nyelven a programozás, az eljárás logika tartalmazza az adatbázis szerveren.

Továbbá, tárolt eljárások csökkenti a hálózati forgalmat. Komplex, ismétlődő feladatokat lehet feldolgozni egy adatbázis szerver az eljárásokat, anélkül, hogy elküldi a részeredmények a kérelmet.

Triggerek használnak az adatok integritásának biztosítása és végrehajtása komplex üzleti logikát. A trigger automatikusan elindul a szerver, amikor megpróbál változtatni az adatokat a táblázatban, amely társítva van. Minden módosítást által szolgáltatott adatok azt tekintjük, hogy végre a tranzakciót, amely előtt keresetet, amely miatt a ravaszt a tüzet. Ennek megfelelően, a hiba esetén vagy adat a korrupció előfordulhat rollback a tranzakciót.

Az általános nézet az szintaxis létrehozásához kiváltó:

ahol
trigger_name - a név a ravaszt;
trigger_time - a reagálási időt a ravaszt. ELŐTT - az esemény előtt. UTÁN - az esemény után;
trigger_event - Esemény:

  • insert - eseményvezérelt betét szereplők. adatok terhelést. cserélni;
  • frissítés - frissítés esemény bekövetkezik az üzemeltető;
  • delete - esemény izgatott delete operátorok. cserélje. Az üzemeltetők DROPTABLE és TRUNCATE nem aktiválja a ravaszt, hogy végre;

tbl_name - a tábla neve;
trigger_body - egy kifejezés, amely végre, amikor az indító aktiválva van.

A triggerek nem lehet csatolni az asztalra, és a képviselet (nézet). Ebben az esetben, ezek segítségével a mechanizmust vezetnek „a frissített előadás.”

Példa: hozzon létre két teszt és log táblázat. levelet ravaszt, hogy adagolása után minden bejegyzést, az 1. táblázatban naplózza ezt az eseményt:

Ott DELIMITER üzemeltető arra szolgál, hogy meghatározzuk a jele elején / végén az eljárást, és állhat egynél több szimbólum (határoló kell választani, amely nem kerül felhasználásra a eljárás).

A táblázat oszlopai, amelyhez kapcsolódik a ravaszt lehet hivatkozni keresztül a régi és új álneveket. OLD.col_name jelez oszlopban megnevezett COL_NAME módosítani vagy törölni. NEW.col_name utal az oszlopot egy új sor beillesztése után, vagy már meglévő - közvetlenül felújítás után.

Ahhoz, hogy távolítsa el a ravaszt lekérdezni kívánt:

Kiváltó okok több fontos tulajdonságot használat:

  1. MySQL 5 kiváltó lehet a felhasználó által létrehozott SUPER kiváltsága;
  2. A kérés érintő N - nyilvántartások, a ravaszt kerül végrehajtásra N - szer;
  3. eltávolítása után az asztal, MySQL adatbázis automatikusan eltávolítja a hozzá csatolt kiváltja.

IRODALOM

Kapcsolódó cikkek