--disable_warnings drop table if exists t1; --enable_warnings set @@autocommit=0; create table t1 (a int not null, b int not null, index (a,b)) engine=innodb; insert into t1 values (1,2), (1,3), (2,3), (2,4); drop trigger if exists tr1; delimiter |; create trigger tr1 after update on t1 for each row begin set @a = 1; rollback to savepoint s1; set @b = 1; end | delimiter ;| start transaction; savepoint s1; select @a, @b; --error 1305 update t1 set a= 21 where b = 2; select @a, @b;