mysql - 如何用mysqldump写存储过程来分隔文件?

标签 mysql stored-procedures scripting mysqldump

mysqldump 选项 --tab=path 将每个表的创建脚本写在一个单独的文件中。但是我找不到存储过程,除了在屏幕转储中。

我需要将存储过程也放在单独的文件中。

我目前正在研究的解决方案是以编程方式拆分屏幕转储。有没有更简单的方法?

目前我使用的代码是:

#save all routines to a single file
mysqldump -p$PASSWORD --routines --skip-dump-date --no-create-info --no-data --skip-opt $DATABASE > $BACKUP_PATH/$DATABASE.sql
#save each table to its file
mysqldump -p$PASSWORD --tab=$BACKUP_PATH --skip-dump-date --no-data --skip-opt $DATABASE

即使我在第二个命令中添加--routines,他们也不会得到他们自己的文件。

最佳答案

我创建了一个脚本来输出到一个单独的文件。

https://gist.github.com/temmings/c6599ff6a04738185596

示例:mysqldump ${DATABASE} --routines --no-create-info --no-data --no-create-db --compact | ./seperate.pl

文件输出到目录(out/)。

$树 . └──出 ├── FUNCTION.EXAMPLE_FUNCTION.sql └── PROCEDURE.EXAMPLE_PROCEDURE.sql

关于mysql - 如何用mysqldump写存储过程来分隔文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721327/

相关文章:

php - 如何在 Dropdownlist 中动态分配数据库值?

即使我有索引,MySQL ORDER BY 也会花费很长时间

sql - 未在另一个存储过程中执行的存储过程

mysql - 无法创建此存储过程。它有什么问题

string - 来自第一个子字符串索引的 Shell 脚本子字符串

无论我做什么,PHP 都会将变量设置为数组?

php - Codeigniter Where 或来自以前的查询

mysql - 跨平台 SQL DB API c/c++

SQL存储动态数据

scripting - Powershell:使用动态创建的参数运行msiexec