Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-il possible de faire un ROLLBACK dans un trigger MySQL ?

J'ai découvert que cette fonctionnalité existe depuis MySQL 5.5 et ne fonctionne pas dans les versions antérieures.

Le déclencheur n'effectue ni restauration ni validation. Pour initier une restauration, vous devez déclencher une exception. Ainsi, votre commande d'insertion/mise à jour/suppression sera annulée. L'action de restauration ou de validation doit être déclenchée autour de votre commande SQL.

Pour lever votre exception, dans le trigger de votre XXX (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 ;