🚗

MySQLのmysqldump コマンドでストアドプロシージャやストアドファンクションも含めてダンプを取得したい

に公開

MySQLのmysqldump コマンドでストアドプロシージャやストアドファンクションも含めてダンプを取得したい

MySQLでデータベースのダンプ(バックアップ)を取得するとき、よく次のようなコマンドを使います。

mysqldump --single-transaction -u ユーザー名 -p -h ホスト名 データベース名 > ダンプファイル名

ただし、このコマンドでは
ストアドプロシージャ(Stored Procedure) や
ストアドファンクション(Stored Function)
はダンプファイルに含まれません。

--routines オプションを追加する

ストアドプロシージャやストアドファンクションも含めたい場合は、
--routines オプションを付ける必要があります。

mysqldump --single-transaction --routines -u ユーザー名 -p -h ホスト名 データベース名 > ダンプファイル名

このオプションを付けることで、ルーチンの定義(CREATE PROCEDURE や CREATE FUNCTION)も含まれるようになります。
MySQL公式サイト 6.5.4 mysqldump — A Database Backup Program

ルーチン(Routine)とは?

MySQLでは、ストアドプロシージャとストアドファンクションを**まとめて「ルーチン(Routines)」**と呼んでいるようです。
たとえば、INFORMATION_SCHEMA.ROUTINES というシステムビューには、これら両方の情報が含まれています。

Discussion