#1 楼
如果要从mydb转储表t1,t2和t3,请执行以下操作:如果mydb中有大量表,并且要转储除t1,t2和t3之外的所有内容,请执行以下操作:mysqldump -u... -p... mydb t1 t2 t3 > mydb_tables.sql
试试看!!!!
更新2014-03-06 10:15 EST
@RoryDonohue向我指出,GROUP_CONCAT函数需要扩展其最大长度。我将会话变量group_concat_max_len添加到了答案中,最大长度为10K。谢谢@RoryDonohue。
评论
要仅排除几个表,可以使用--ignore-table = Table1 --ignore-table = Table2 --ignore-table = Table3等。
– codewaggle
2012年12月13日在13:06
@codecowboy,您可以将SQL =“ $ {SQL} AND table_name NOT IN('t1','t2','t3')”更改为SQL =“ $ {SQL} AND table_name NOT LIKE'foo \ _%'” 。我刚刚对其进行了测试,并且可以正常工作。您可以将条件更改为'%foo%',以获取名称中包含“ foo”的所有表(包括“ food”,“ fool”等)。
–瓶Butkus
2014年12月23日下午2:55
考虑到--ignore-table参数的存在,将表排除在外的方法难道不是多余的吗?如果是这样,从答案中删除脚本并推荐--ignore-table会更好吗?
–马克·阿默里(Mark Amery)
16-09-26在17:34
@codewaggle给出错误-选项--ignore-table =
评论
另请参见:mysqldump是否有任何选项忽略数据库进行备份?