web-dev-qa-db-ja.com

MySQLのストアドプロシージャのみをダンプする

ストアドプロシージャのみをダンプする必要があります。データなし、テーブル作成なし。 mysqldumpを使用してこれを行うにはどうすればよいですか?

32
nakhli

これはあなたのためにそれをするはずです:

mysqldump -h... -u... -p... -n -d -t --routines --triggers --all-databases > MySQLStoredProc.sql

  -n, --no-create-db     Suppress the CREATE DATABASE ... IF EXISTS statement 
                         that normally is output for each dumped database if
                         --all-databases or --databases is given.
  -d, --no-data          No row information.
  --triggers             Dump triggers for each dumped table.
                         (Defaults to on; use --skip-triggers to disable.)
  -R, --routines         Dump stored routines (functions and procedures).
  -t, --no-create-info   Do not write CREATE TABLE statements that create each 
                         dumped table.

警告

ストアドプロシージャをデータベースから分離せずに、特定のストアドプロシージャが対象のデータベースに作成されるようにする方がはるかに適切です。同じことがトリガーにも言えます。これが望ましいでしょう:

mysqldump -h... -u... -p... -d --routines --triggers --all-databases > MySQLStoredProc.sql
37
RolandoMySQLDBA