Renunțați inserați în trigger mysql, softodom - blog despre programare, software, internet și-l

O situație simplă când blocăm un declanșator în introducerea datelor într-o tabelă și în acest declanșator determinați dacă să inserați aceste date sau nu. În cazul MySQL, totul nu a fost ușor.







Problema este că nu puteți anula în mod trivial o cerere în declanșarea MySQL. În același MS SQL Server există INSTEAD OF trigger-uri și este suficient doar să vă înregistrați în declanșatorul ROLLBACK. care ar anula inserarea, dar în MySQL nu puteți utiliza comenzi de tranzacție în declanșatoare.

Este posibil să ștergeți corect o intrare de rând în MySQL cu un declanșator în MySQL? Aveți nevoie de un declanșator care să interzică inserarea. Există câteva modalități de a rezolva această problemă.







Declanșează un declanșator

Prin declanșarea unei erori în declanșator, puteți anula executarea cererii care a declanșat declanșatorul.
Din păcate, în declanșarea MySQL, nu există nicio modalitate de a relua corect tranzacția.
Cel mai bun lucru (în ciuda faptului că este teribil), decizia este acum să greșești.

Un comprimat cu un nume lung, desigur, nu ar trebui să existe. Se pare ca o carja, o carja este.

Ștergeți firul curent

Declanșator: înainte de inserare, înainte de actualizare, înainte de ștergere.

Apelarea unei proceduri de la declanșator

declanșa înainte de inserare - OLD nu există în ea. Dacă nu trebuie să faceți nimic - RETURN null;

Astfel de cazuri, în general.







Trimiteți-le prietenilor: