+1 za to pytanie, ponieważ jest wielu programistów w świecie DB, którzy lubią katalogować procedury przechowywane poza MySQL w oprogramowaniu do kontroli wersji, którzy chcieliby to zrobić (sam nie jestem fanem tego
RolandoMySQLDBA
W moim przypadku to polecenie daje mi błąd. mysqldump: Got error: 23: "Out of resources when opening file"Miałem --single-transactionopcję rozwiązania tego błędu. A jeśli chcesz tylko procedury, możesz dodać - -no-create-infoaby uniknąć instrukcji tworzenia tabeli.
bedomon
Odpowiedzi:
34
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 databaseif--all-databases or --databases is given.-d,--no-data No row information.--triggers Dump triggers for each dumped table.(Defaults toon;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:
Próbowałem tego i musiałem dodać opcję -t, aby nie tworzyć instrukcji tworzenia tabeli.
Derek Downey
Zapomniałem tego, szkoda, że nie mogę głosować za komentarzami. Zaktualizowałem pierwsze polecenie mysqldump, aby je uwzględnić. Drugi należy pominąć, aby powiązać każdy wyzwalacz z jego tabelą podstawową. Jeszcze raz dziękuję, @DTest !!!
RolandoMySQLDBA
Nie ma problemu. W moim przypadku chciałem tylko przechowywane funkcje / procedury dla konkretnej bazy danych, a nie wyzwalacze. Tak się udało
mysqldump: Got error: 23: "Out of resources when opening file"
Miałem--single-transaction
opcję rozwiązania tego błędu. A jeśli chcesz tylko procedury, możesz dodać --no-create-info
aby uniknąć instrukcji tworzenia tabeli.Odpowiedzi:
To powinno zrobić to za Ciebie:
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:
źródło