sql >> Database >  >> RDS >> Mysql

Is het mogelijk om een ​​ROLLBACK te doen in een MySQL-trigger?

Ik heb ontdekt dat deze functionaliteit bestaat sinds MySQL 5.5 en niet werkt in eerdere releases.

De trigger voert geen rollback of commit uit. Om een ​​rollback te starten, moet u een uitzondering maken. Je insert/update/delete-opdracht wordt dus afgebroken. De actie terugdraaien of vastleggen moet worden uitgevoerd rond je SQL-opdracht.

Om uw uitzondering te verhogen, in de trigger van uw XXX (bijv.):

create trigger Trigger_XXX_BeforeInsert before insert on XXX
for each row begin

    if [Test]
    then

      SIGNAL sqlstate '45001' set message_text = "No way ! You cannot do this !";

    end if ;

end ;


  1. Kun je alles SELECTEREN, behalve 1 of 2 velden, zonder schrijverskramp?

  2. Psql een lijst van alle tabellen

  3. md5 hash login met php en mysql

  4. Waarom geeft deze in MySQL opgeslagen functie andere resultaten dan de berekening in de query?