delimiter $$ CREATE FUNCTION hello (tableId INT, chunkSize INT) RETURNS INT BEGIN select max(endVal) into beginVal from KeyGen where tableId=@tableId; @beginVal=@beginVal+1; @endVal=@beginVal+(@chunkSize-1); INSERT INTO KeyGen (beginVal, endVal, tableId) VALUES (@beginVal, @endVal , @tableId); RETURN LAST_INSERT_ID() from KeyGen; END