Mysql kiváltó és MariaDB

Kiváltja a MySQL (az angol Trigger.) - egy különleges SQL tárolt eljárás nyelvet, amely végre, amikor egy bizonyos esemény (például beszúrás, frissítés, törlésére). Ez nem nevezhető kézzel. Támogatás az eljárás már kapható MySQL 5.0.2, valamint az összes változatának MariaDB.

Az eljárás alatt a MySQL adatbázis és hív meg nem függ a programozási nyelv, vagy alkalmazás.

A használatának előnyei MySQL triggerek

Ezen túlmenően, a használata flip-flop nem függ az alkalmazástól és a programozási nyelv, számos előnye van:

  1. Csökkenti a hálózati forgalmat
  2. Minimalizálva a felhasznált erőforrások
  3. Nem kell átadni a részeredmények a kérelem
  4. Biztosítva az adatintegritást
  5. A trigger automatikusan elindul

Minden művelet tranzakciónak minősül, így hiba esetén, könnyedén visszaállíthatja a vagy egyéb változásokat.

A szintaxis létrehozása a ravaszt

Syntax sozadniya ravaszt nagyon egyszerű:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name mindegyik sor trigger_stmt

  • trigger_name - a név a ravaszt
  • trigger_time - A válaszidő a ravaszt. ELŐTT - az esemény előtt. UTÁN - az esemény után.
  • trigger_event - Esemény:
    1. insert - eseményvezérelt betét kezelők, adatfeldolgozó terhelés, cserélje
    2. frissítés - frissítés esemény izgatott üzemben
    3. delete - eseményvezérelt szereplők törlése, cseréje. Az üzemeltetők DROP TABLE és TRUNCATE nem aktiválja a ravaszt, hogy végre
  • tbl_name - a tábla neve
  • trigger_stmt kifejezés, amely végrehajtásra kerül, amikor az indító aktiválva

Érdemes megjegyezni, hogy a kiváltó nem köthető az asztalra, és közvetlenül, a reprezentáció (nézet). Ebben az esetben, ezek segítségével a mechanizmust vezetnek „a frissített előadás.”

Példa ravaszt létrehozása

Nézzük a következő példát. Jelenleg 2 tábla teszt és log. Hozzon létre egy trigger, amely rögzíti az eseményt a napló, ha hozzá rekordokat a táblát.

Hozzon létre egy táblát:

/ * Teszt asztal, amelyhez követik * /
CREATE TABLE `test` (` id` INT (11) előjel nélküli NOT NULL AUTO_INCREMENT elsődleges kulcsot, `Tartalmának SZÖVEG NOT NULL);

/ * A napló hol fogunk adatok rögzítésére * /
CREATE TABLE `log` (` id` INT (11) előjel nélküli NOT NULL AUTO_INCREMENT elsődleges kulcsot, `msg` VARCHAR (255) nem nulla,` time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `row_id` INT (11) NOT NULL);

/ * * Hozzon létre egy aktiválási /
DELIMITER | CREATE TRIGGER `update_test` UTÁN INSERT ON` test` mindegyik sor BEGIN INSERT INTO log Set msg = 'betét', row_id = NEW.id; END;

Így hoztunk létre update_test trigger, amely akkor aktiválódik, ha egy rekord bekerül a táblát. És most, a napló is meg fog jelenni az azonos rekord. És összhangban row_id tárolható rekord id.

Itt DELIMITER nyilatkozatot meghatározásához használt jele az elejére / végére az eljárást. Ez bármi lehet. A lényeg, hogy a védjegyet nem használják ezt az eljárást.

Hogy az összes kiváltó létre, a következő parancsot:

És annak érdekében, hogy távolítsa el a ravaszt, használja a DROP ravaszt. Példánkban törölni az új Triger:

DROP TRIGGER `update_test`;

Jellemzői a felhasználásának flip-flop

Mit kell figyelni, ha a kiváltó:

  1. Ha törli a táblázatot, amely kötődik a kiváltó, ők is törölve
  2. A trigger váltja minden rekordot a táblázatban. Ha kérését magában, például 5 nyilvántartások, a ravaszt fog futni pontosan 5-ször
  3. Ahhoz, hogy hozzon létre egy ravaszt, meg kell adnunk a SUPER kiváltság

Ha a projekt nőtt jelentős méretű, meg kell bérelni egy szervert egy adatközpontban. A RigWEB egyes dedikált szerver mentes beadásra. Mi segít létrehozni kiváltó, ha szükséges.

VPS / VDS 389 p. által RigWEB.RU beadásával

Kapcsolódó cikkek