it-swarm.dev

Zrzuć tylko procedury przechowywane w MySQL

Muszę zrzucić tylko procedury składowane: bez danych, bez tworzenia tabeli. Jak mogę to zrobić za pomocą mysqldump?

32
nakhli

To powinno zrobić to za Ciebie:

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.

CAVEAT

O wiele lepiej byłoby nie oddzielać procedur przechowywanych od bazy danych, aby w bazie danych, dla której były przeznaczone, zostały utworzone określone procedury przechowywane. To samo dotyczy wyzwalaczy. Byłoby to preferowane:

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