--disable_warnings drop table if exists t1; drop trigger if exists t1_bi; drop function if exists f1; drop procedure if exists p1; --enable_warnings create table t1(id int); delimiter |; create trigger t1_bi BEFORE INSERT ON t1 FOR EACH ROW BEGIN declare v integer default 4; if (v = 4) then set @check := 1; else update wrong_table set throw_exception = 1; set @check := 2; end if; END; | create function f1() returns integer begin declare v integer default 4; if (v = 4) then set @check := 1; else update wrong_table set throw_exception = 1; set @check := 2; end if; return @check; end | create procedure p1() begin declare v integer default 4; if (v = 4) then set @check := 1; else update wrong_table set throw_exception = 1; set @check := 2; end if; end | delimiter ;| --error 1146 insert into t1 values(1); --error 1146 select f1(); call p1();