我的MySQL数据库中有2个表。
我需要将两个表输出到SQL转储文件。(CREATE脚本)
但是,我可能只会转储某些行。(例如,其中column = value)。
第一张表格罚款。
但是,第二个表可能只会转储行,例如column =第一个结果集中存在的值。
我想使用mysqldump,但我不认为它会对这种类型的查询起作用,除非我做某种连接或联合?
我也可以使用PHP并在循环遍历行时创建文件,但我不认为这是最有效的方法。
任何建议或帮助将不胜感激!
答案 0 :(得分:1)
感谢@MarcB回答这个问题,它100%有效。我发布这个是为了遵循堆栈溢出规则的回答,并显示我最终使用的内容。
所以这是我在bash脚本中运行的2个mysqldump命令:(我用' x'替换了一些私有数据)
#!/bin/bash
#dump the first table
mysqldump -h xxx.xxx.xxx.xxx -u xxxxx -pxxxxx --where="name='value'" databasename table1 > /home/xxxxx/xxxxx/table1.sql
#dump the second table that relates to the first one
mysqldump -h xxx.xxx.xxx.xxx -u xxxxx -pxxxxx --lock-all-tables --where="field_id in (select anotherfield_id from table1 where name='value')" databasename table2 > /home/xxxxx/xxxxx/table2.sql