sql >> Databasteknik >  >> RDS >> Mysql

Är det möjligt att göra en ROLLBACK i en MySQL-utlösare?

Jag har fått reda på att den här funktionen finns sedan MySQL 5.5 och inte fungerar i tidigare utgåvor.

Utlösaren gör ingen rollback eller commit. För att initiera en rollback måste du göra ett undantag. Således kommer ditt insert/update/delete-kommando att avbrytas. Återställningen eller commit-åtgärden måste höjas kring ditt SQL-kommando.

För att höja ditt undantag, i din XXX:s trigger (t.ex.):

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 $i++ motsvarande

  2. Automatisera tabellmodellbearbetningen av Analysis Services-databaser (SSAS) i SQL Server

  3. Skapar en UNIK begränsning automatiskt ett INDEX på fältet/fälten?

  4. Återställ en SQLite-databas