Mmm..probabilmente mi servono entrambe!!
Se volessi creare una funzione che inserisce in una tabella i risultati di una query potrei fare qualcosa del tipo:

CREATE FUNCTION funz () returns boolean

begin
declare result boolean;
set result = INSERT INTO tabella2 (dato2) SELECT tabella1.dato1 FROM tabella1;
return result;
end

Vi prego, non picchiatemi se ho scritto qualche oscenità!!