Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możliwe jest wykonanie ROLLBACK w wyzwalaczu MySQL?

Dowiedziałem się, że ta funkcja istnieje od wersji MySQL 5.5 i nie działa we wcześniejszych wydaniach.

Wyzwalacz nie wycofuje ani nie zatwierdza. Aby zainicjować cofnięcie, musisz zgłosić wyjątek. W ten sposób twoje polecenie wstawiania/aktualizacji/usuwania zostanie przerwane. Akcja wycofywania lub zatwierdzania musi zostać wywołana wokół polecenia SQL.

Aby zgłosić wyjątek, w wyzwalaczu XXX (np.):

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. Czy jest to bezpieczna metoda wstawiania danych formularza do bazy danych MySQL?

  2. Wyjątek w głównym wątku org.hibernate.HibernateException:Błąd dostępu do strumienia stax

  3. PDO bindParam nie pozwala instrukcji na zwrócenie wyników

  4. Jak debugować przekroczony limit czasu oczekiwania blokady na MySQL?

  5. Wyłącz ostrzeżenia i błędy w PHP i MySQL