MySQL - Create a function from another function
You could play some games with mysql.proc, the physical home of all Stored Procedures and Stored Functions.
First, here are the databases on my PC
mysql&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| david              |
| dufran             |
| jimelliott         |
| junk               |
| karto              |
| mysql              |
| performance_schema |
| preeti             |
| rolando            |
| sandro             |
| telwit             |
| telwit_french      |
| test               |
| user1162541        |
| yellowseason       |
+--------------------+
16 rows in set (0.00 sec)

mysql&gt;

Let's create a Stored Function in the database rolando called GetUnixTimeStamp:
mysql&gt; DELIMITER $$
mysql&gt; DROP FUNCTION IF EXISTS `GetUnixTimeStamp` $$
Query OK, 0 rows affected (0.01 sec)

mysql&gt; CREATE DEFINER=`root`@`localhost` FUNCTION `GetUnixTimeStamp`(x INT) RETURNS int(11)
    -&gt; DETERMINISTIC
    -&gt; BEGIN
    -&gt;     RETURN UNIX_TIMESTAMP();
    -&gt; END $$
Query OK, 0 rows affected (0.00 sec)

mysql&gt; DELIMITER ;
mysql&gt; SELECT rolando.GetUnixTimeStamp(9);
+-----------------------------+
| rolando.GetUnixTimeStamp(9) |
+-----------------------------+
|                  1352263567 |
+-----------------------------+
1 row in set (0.00 sec)

mysql&gt;

Let's try to sculpt the CREATE FUNCTION SQL Statement based on the function itself
SELECT CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),
'` ',type,' `',db,'`.`',name,'`(',param_list,') ',
IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',
IF(is_deterministic='YES','DETERMINISTIC',''),' ',body)
INTO @ProcedureCreationSQL from mysql.proc
WHERE db='rolando' AND name='GetUnixTimeSTamp';
SELECT @ProcedureCreationSQL\G

What does this generate ?
mysql&gt; SELECT CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),
    -&gt; '` ',type,' `',db,'`.`',name,'`(',param_list,') ',
    -&gt; IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',
    -&gt; IF(is_deterministic='YES','DETERMINISTIC',''),' ',body)
    -&gt; INTO @ProcedureCreationSQL from mysql.proc
    -&gt; WHERE db='rolando' AND name='GetUnixTimeSTamp';
Query OK, 1 row affected (0.00 sec)

mysql&gt; SELECT @ProcedureCreationSQL\G
*************************** 1. row ***************************
@ProcedureCreationSQL: CREATE DEFINER=`root`@`localhost` FUNCTION `rolando`.`GetUnixTimeStamp`(x INT) RETURNS int(11) DETERMINISTIC BEGIN
    RETURN UNIX_TIMESTAMP();
END
1 row in set (0.00 sec)

mysql&gt;

OK so far, so good. Let's change the SQL to place this function in the database david
mysql&gt; SELECT CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),
    -&gt; '` ',type,' `david`.`',name,'`(',param_list,') ',
    -&gt; IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',
    -&gt; IF(is_deterministic='YES','DETERMINISTIC',''),' ',body)
    -&gt; INTO @ProcedureCreationSQL from mysql.proc
    -&gt; WHERE db='rolando' AND name='GetUnixTimeSTamp';
Query OK, 1 row affected (0.00 sec)

mysql&gt; SELECT @ProcedureCreationSQL\G
*************************** 1. row ***************************
@ProcedureCreationSQL: CREATE DEFINER=`root`@`localhost` FUNCTION `david`.`GetUnixTimeStamp`(x INT) RETURNS int(11) DETERMINISTIC BEGIN
    RETURN UNIX_TIMESTAMP();
END
1 row in set (0.00 sec)

mysql&gt;

OK Great. We can make the SQL. Can I execute the creation of the new function ???
echo DELIMITER $$ &gt; newproc.txt
mysql -uroot --delimiter=&quot;$$&quot; -ANe&quot;SELECT REPLACE(CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),'` ',type,' `david`.`',name,'`(',param_list,') ',IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',IF(is_deterministic='YES','DETERMINISTIC',''),' ',body),'\n',' ') from mysql.proc WHERE db='rolando' AND name='GetUnixTimeSTamp';&quot; &gt;&gt; newproc.txt
echo $$ &gt;&gt; newproc.txt
mysql -uroot &lt; newproc.txt

Does the function exist ???
mysql&gt; show create function david.getunixtimestamp\G
*************************** 1. row ***************************
            Function: getunixtimestamp
            sql_mode:
     Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `getunixtimestamp`(x INT) RETURNS int(11)
    DETERMINISTIC
BEGIN     RETURN UNIX_TIMESTAMP(); END
character_set_client: cp850
collation_connection: cp850_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

mysql&gt;

Biggest questiion of all : Does the newly copied function run ???
mysql&gt; select david.getunixtimestamp(8);
+---------------------------+
| david.getunixtimestamp(8) |
+---------------------------+
|                1352265404 |
+---------------------------+
1 row in set (0.00 sec)

mysql&gt;

HOORAY !!! This is how you can copy a function from one database to another.
FINAL QUESTION : Is this all worth it ???
SUMMARY
Here is the original SQL to generate function creation
SELECT CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),
'` ',type,' `david`.`',name,'`(',param_list,') ',
IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',
IF(is_deterministic='YES','DETERMINISTIC',''),' ',body)
INTO @ProcedureCreationSQL from mysql.proc
WHERE db='rolando' AND name='GetUnixTimeSTamp';
SELECT @ProcedureCreationSQL\G

This will create Stored Procedures as well
Here is the copy operation, which must take place from the OS level calling the mysql client
echo DELIMITER $$ &gt; newproc.txt
mysql -uroot --delimiter=&quot;$$&quot; -ANe&quot;SELECT REPLACE(CONCAT('CREATE DEFINER=`',REPLACE(definer,'@','`@`'),'` ',type,' `david`.`',name,'`(',param_list,') ',IF(type='FUNCTION',CONCAT('RETURNS ',returns),''),' ',IF(is_deterministic='YES','DETERMINISTIC',''),' ',body),'\n',' ') from mysql.proc WHERE db='rolando' AND name='GetUnixTimeSTamp';&quot; &gt;&gt; newproc.txt
echo $$ &gt;&gt; newproc.txt
mysql -uroot &lt; newproc.txt