Я обнаружил, что эта функциональность существует начиная с 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 ;