Trigger (declanșare limba engleză.) - este stocată SQL procedura compilate, care nu este numit în mod direct, și este executată atunci când are loc un eveniment special în cadrul bazei de date (insera, șterge, înregistrări de actualizare). Suport pentru declanșatoare în MySQL a început cu versiunea 5.0.2
Procedurile stocate rula în toate mediile, și nu este nevoie de a reconstrui logica. Din moment ce ați creat o procedură stocată, indiferent de aplicație utilizată pentru a apela procedura. De asemenea, nu contează ce limbă sunt de programare, logica procedura este conținută pe serverul de baze de date.
De asemenea, procedurile stocate pot reduce traficul în rețea. sarcini complexe, repetitive pot fi procesate cu ajutorul unui server de baze de date cu privire la procedurile, fără a fi nevoie de a trimite rezultatele intermediare la cerere.
Declanșatoare sunt utilizate pentru a asigura integritatea datelor, și să pună în aplicare logica de afaceri complexe. Declanșatorul este declanșată automat de server atunci când încercați să schimbați datele din tabelul cu care este asociat. Toate modificările aduse datelor obținute de acesta sunt considerate ca fiind efectuate într-o tranzacție în care o acțiune care a cauzat de declanșare a focului. În consecință, în cazul unei erori sau date de corupție pot apărea derula înapoi tranzacția.
Vedere de ansamblu a sintaxei pentru crearea declanșatori:
unde
TRIGGER_NAME - numele de declanșare;
trigger_time - timpul de răspuns al declanșatorului. ÎNAINTE - înainte de eveniment. DUPĂ - după eveniment;
trigger_event - Eveniment:
- inserați - operatorii insert eveniment condus. încărcare de date. înlocuiți;
- actualizare - actualizare eveniment este ridicată de către operator;
- ștergeți - eveniment excitat operatorii de ștergere. înlocuiți. Operatorii DROPTABLE și trunchiați nu activează declanșatorul pentru a executa;
tbl_name - numele tabelului;
trigger_body - o expresie care se execută atunci când declanșatorul este activat.
Declanșatorii nu poate fi atașat la masă și la reprezentarea (VIEW). În acest caz, cu ajutorul lor, mecanismul este pus în aplicare „prezentarea actualizată.“
Exemplu: creați două probe și jurnal de masă. scrie un declanșator că, după adăugarea fiecărei intrări în primul tabel va înregistra acest eveniment:
Acolo operatorul DELIMITER servește pentru a determina semnul începutul / sfârșitul procedurii și poate consta din mai mult de un simbol (delimitator trebuie să fie ales, care nu vor fi utilizate în cadrul procedurii).
În coloanele din tabel, la care este atașată declanșatorul poate fi invocat prin vechi și alias-uri NOI. OLD.col_name indică o COL_NAME coloană pe nume pentru a modifica sau șterge datele. NEW.col_name se referă la coloana unui nou rând după introducerea sau existent - imediat după renovare.
Pentru a elimina declanșatorul pe care doriți să interogare:
Declanșările sunt mai multe caracteristici importante de utilizare:
- MySQL 5 declanșatori pot fi create de către un utilizator cu privilegiu SUPER;
- în cererea care afectează N - înregistrări, declanșatorul va fi executată N - ori;
- după îndepărtarea din tabel, baza de date MySQL elimină atașat automat la declanșează.