--disable_abort_on_error --disable_warnings DROP TABLE IF EXISTS t1; DROP FUNCTION IF EXISTS func0; --enable_warnings # SET sql_mode = 'traditional'; CREATE TABLE t1 (f1 SMALLINT, PRIMARY KEY(f1)); INSERT INTO t1 SET f1 = 1; --error 1146 INSERT INTO t2 SET f1 = 1; delimiter //; CREATE FUNCTION func0() RETURNS BIGINT BEGIN INSERT INTO t2 SET f1 = 1; RETURN 1; END// delimiter ;// SET @my_val = -1; --error 1146 SELECT func0() INTO @my_val; SELECT @my_val; DROP FUNCTION func0; --error 1062 INSERT INTO t1 SET f1 = 1; delimiter //; CREATE FUNCTION func0() RETURNS BIGINT BEGIN INSERT INTO t1 SET f1 = 1; RETURN 1; END// delimiter ;// SET @my_val = -1; --echo !!!!!!!! I expect to get error 1062 here SELECT func0() INTO @my_val; --echo !!!!!!!! I expect to have -1 within the variable SELECT @my_val;