sql >> Database teknologi >  >> RDS >> Mysql

Er det muligt at lave en ROLLBACK i en MySQL-trigger?

Jeg har fundet ud af, at denne funktionalitet eksisterer siden MySQL 5.5 og ikke virker i tidligere udgivelser.

Udløseren foretager ingen rollback eller commit. For at starte en rollback skal du oprette en undtagelse. Derfor vil din indsæt/opdater/slet-kommando afbrydes. Tilbageføringen eller commit-handlingen skal hæves omkring din SQL-kommando.

For at hæve din undtagelse, i din XXX's trigger (f.eks.):

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. MySQL CASE for at opdatere flere kolonner

  2. Django, efter opgradering:MySQL-serveren er forsvundet

  3. Paginering for at vise maks. værdi og begrænse resten

  4. PHP Slet flere rækker med afkrydsningsfelt