ストアドルーチン(プロシージャとファンクション)が MySQL 5.1ではサポートされています。
ストアドプロシージャはサーバが保存することができるSQLステートメントの組です。
これが実行されると、クライアントは各ステートメントを発行し続ける必要がなくなり、
代わりにストアドプロシージャを参照します。

プロシージャの呼び出しにはCALL文を使います。そして、プロシージャとの入出力は、
CALLするときに指定した変数を介してやりとりします。

ファンクションは、組み込みのSQL関数と同じように、SQL文の中で使うことができ、
ファンクションが返す値はSELECT文の値やWHERE句の条件として使うことができます。

select * from information_schema.ROUTINES\G
isr

select * from mysql.proc\G
mp

ストアドルーチンはプロシージャかファンクションのいずれかです。
ストアドルーチンはCREATE PROCEDUREおよびCREATE FUNCTION
ステートメントを使って作成されます。
プロシージャはCALLステートメントを使って起動し、アウトプット変数を使ってのみ値を返す
ことができます。関数(ファンクション)は(関数名を呼び出す方法を採用している)他の関数のように、
ステートメントの内側から呼び出して、スカラー値を返すことができます。
ストアドルーチンは他のストアドルーチンを呼び出すことができます。

automatic_sp_privilegesシステム変数がゼロである場合、EXECUTEおよびALTER ROUTINE
権限は自動的に供与・除去されません。

再帰的なストアドプロシージャは、デフォルトで無効化されていますが、max_sp_recursion_depth
サーバシステム変数をゼロの値に設定することによって、サーバ上で有効化することができます。

参考サイト
第17章 ストアドプロシージャとファンクション

17.1. ストアドルーチンとグラントテーブル


17.2. ストアドルーチン構文

ストアドルーチン&トリガでスリムに自動化