mysql转储批处理-根据选择排除某些表
我们的数据库中有100个表,其中20个表的数据是通过加载数据填充生成的 因此,如果我们知道它们是最重的——大约是数据库大小的80%,那么用MYSQLDUMP保存它们是没有意义的 这些加载数据填充使用PHP表单进行管理,因此表名保存在数据库中,如下所示: 表格名称:导入表格 表格的列:表格名称、表格列、创建日期等 因此,当我提出这个问题时:mysql转储批处理-根据选择排除某些表,mysql,database,batch-file,Mysql,Database,Batch File,我们的数据库中有100个表,其中20个表的数据是通过加载数据填充生成的 因此,如果我们知道它们是最重的——大约是数据库大小的80%,那么用MYSQLDUMP保存它们是没有意义的 这些加载数据填充使用PHP表单进行管理,因此表名保存在数据库中,如下所示: 表格名称:导入表格 表格的列:表格名称、表格列、创建日期等 因此,当我提出这个问题时: SELECT table_name FROM import_table 我有一个结果: list_of_customer all_order all_inv
SELECT table_name FROM import_table
我有一个结果:
list_of_customer
all_order
all_invoice
...
因此,由于这个表包含了所有要忽略的表,并且这些表可以随时更改,所以我希望创建我的批以执行MYSQLDUMP
所以我这样做了:
@ECHO OFF
"C:\wamp\bin\mysql\mysql8.0.18\bin\mysqldump.exe" mydatabase --result-file="C:\test1\test2\databases.sql" --user=**** --password=****
如何集成导入表中的SELECT table\u name以使用选项-ignore table
在文件中获取表的名称
在变量中读取该文件
将该变量用于-ignore表
我无法在mac上进行测试,但我希望您了解如何进行测试。您是否可以添加一个存储过程来转储表并调用它,而不是在脚本文件中完成所有工作?否则,您必须将查询结果保存到一个文件中,然后解析该文件以构建转储命令行?请注意,这是一个生产数据库,我不能清空表,也不能让UsersHank等待太长时间,但我有一个错误:mysqldump:找不到表:group\u concatable\u name确实在文件的第一行,我有group\u concatable\u name,然后是表列表,如何删除这一行?是否能够单独执行原始查询?从导入表格中选择group_Concatable_name?是的,它可以工作,并且我有一个以逗号分隔的表格列表,突然我不明白为什么我在文本文件中有这第一行
@ECHO OFF
"C:\wamp\bin\mysql\mysql8.0.18\bin\mysql.exe" mydatabase -e "SELECT group_concat(table_name) FROM import_table" --user=**** --password=**** > queryresult.txt
set /p ExcludedTables=<queryresult.txt
"C:\wamp\bin\mysql\mysql8.0.18\bin\mysqldump.exe" mydatabase --result-file="C:\test1\test2\databases.sql" --user=**** --password=**** --ignore-table-=%ExcludedTables%