Aprilie
17
2008

Factori declanşatori în MySQL

Un declanşator sau de declanşare este un eveniment care se execută atunci când efectuaţi o acţiune pe un tabel special. Este convenabil, de exemplu, dacă vrem să inseraţi date într-un tabel copiate în mod automat anumite date în alta. În MySQL, această funcţie este inclus de la versiunea 5.0.

Pentru a crea un trigger, înainte de a avea tabelele create. Odată ce aţi făcut, ne-am îndreptat la masa la care controlul dacă o anumită acţiune este efectuată. Aplicată la un studiu de caz pentru o mai bună înţelegere, avem o ligă în cazul în care sunt jucate aceste jocuri, aceste jocuri vor determina clasificarea, astfel că, atunci când introduceţi un joc va rula declanşator care va actualiza datele de pe computere: jocuri de castigat, jocuri pierdute, goluri marcate, şi aşa mai departe.

Ei bine, suntem în tabel, în cazul în care vom vedea structura dumneavoastră. Doar de mai sus fila SQL apare, faceţi clic pe noi. Am încărca o altă pagină în care trebuie să scrie codul de declanşare. Este important să se pună ca delimitator de "|" fara ghilimele, pentru că altfel, este destul de probabil că am eroare. Să ne întoarcem la un exemplu, care este aşa cum se vede mai clar:




-------------------------

CREATE TRIGGER ÎNAINTE inseraţi pe părţile actualizarequipos

PENTRU FIECARE

ROW

începe

NEW.golesl dacă> ATUNCI NEW.golesv

Echipele UPDATE SET 1 UNDE pg = pg = NEW.idel idequipo;

Echipele UPDATE SET puncte puncte = 3 = UNDE idequipo NEW.idel;

Echipele UPDATE SET P = P + Unde NEW.golesl idequipo = NEW.idel;

Echipele UPDATE SET GC = GC + Unde NEW.golesv idequipo = NEW.idel;

UPDATE echipele create UNDE PP = P +1 = NEW.idev idequipo;

Echipele UPDATE SET P = P + Unde NEW.golesv idequipo = NEW.idev;

Echipele UPDATE SET GC = GC + Unde NEW.golesl idequipo = NEW.idev;

în cazul în care se încheie;

DACĂ NEW.golesl <NEW.golesv ATUNCI

Echipele UPDATE SET puncte puncte = 3 = UNDE idequipo NEW.idev;

Echipele UPDATE SET 1 UNDE pg = pg = NEW.idev idequipo;

Echipele UPDATE SET P = P + Unde NEW.golesv idequipo = NEW.idev;

Echipele UPDATE SET GC = GC + Unde NEW.golesl idequipo = NEW.idev;

UPDATE echipele create UNDE PP = P +1 = NEW.idel idequipo;

Echipele UPDATE SET P = P + Unde NEW.golesl idequipo = NEW.idel;

Echipele UPDATE SET GC = GC + Unde NEW.golesv idequipo = NEW.idel;

în cazul în care se încheie;

Dacă atunci NEW.golesl = NEW.golesv

Echipele UPDATE SET PE = PE UNDE un idequipo = NEW.idev;

Echipele UPDATE SET puncte = puncte +1 = UNDE idequipo NEW.idev;

Echipele UPDATE SET puncte = puncte +1 = UNDE idequipo NEW.idel;

Echipele UPDATE SET P = P + Unde NEW.golesv idequipo = NEW.idev;

Echipele UPDATE SET GC = GC + Unde NEW.golesl idequipo = NEW.idev;

Echipele UPDATE SET PE = PE UNDE un idequipo = NEW.idel;

Echipele UPDATE SET P = P + Unde NEW.golesl idequipo = NEW.idel;

Echipele UPDATE SET GC = GC + Unde NEW.golesv idequipo = NEW.idel;

în cazul în care se încheie;

capăt

-------------------------

Funcţionare:

1. Crearea de declanşare numit "actualizarequipos".

2. Cu ÎNAINTE INSERT pe meciurile sunt verificate înainte de introducerea de date.

3. Cu pentru fiecare rând trece prin fiecare tuplu (linie) de echipamente pentru a verifica ID-ul pentru a se potrivi că din echipele participante la joc.

4. Cu DACĂ verifica daca rezultatul este victorie, egal sau înfrângere pentru fiecare echipă, şi noi. se referă la noile date introduse, de exemplu, obiectivele care au fost introduse în partid.

5. Update actualizează toate datele de pe computer în funcţie de rezultatele şi obiectivele.

6. În cele din urmă, după introducerea de date sunt actualizate datele din aceste echipe, şi cu următoarea interogare ar putea şti de clasificare:


SELECT * din Ordinul de puncte DESC echipamente, GF DESC



Selectează toate datele din echipele de masă şi pe primul loc de puncte, şi, dacă le aveţi, prin goluri marcate.

MySQL

Lasă un comentariu

Facebook

Categorii

Pagini

Tag-uri

Traducător

Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagArabic flag
Russian flagGreek flagDutch flagCzech flagDanish flagFinnish flagPolish flagRomanian flagSwedish flag
Norwegian flagLithuanian flagSerbian flagSlovak flagSlovenian flagEstonian flagTurkish flagHungarian flagIcelandic flag