Mysql
 sql >> база данни >  >> RDS >> Mysql

Възможно ли е да се направи ROLLBACK в MySQL тригер?

Открих, че тази функционалност съществува от MySQL 5.5 и не работи в по-ранни версии.

Тригерът не прави връщане назад или извършване. За да инициирате каквото и да е връщане назад, трябва да повдигнете изключение. По този начин вашата команда за вмъкване/актуализиране/изтриване ще бъде прекратена. Действието за връщане назад или комит трябва да бъде повдигнато около вашата SQL команда.

За да повишите изключението си, в тригера на XXX (напр.):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвети за надграждане от MySQL 5.7 до MySQL 8

  2. Някакъв начин за автоматично генериране на UML диаграма?

  3. Урок за MySQL – Разбиране на секундите зад главната стойност

  4. XCode, удостоверяване и NSUserDefaults

  5. MySQL брой съвпадащи думи