带有或不带where子句的多个表的mysqldump

Swo*_*kya 8 mysql mysqldump

我的数据库中有一组表,我必须进行转储(:D).我的问题是我想从某些表中获取一些数据,这些数据只能追溯到某些日期,并希望保留其余表格.

我想出的查询是这样的:

mysqldump -h<hostname> -u<username> -p <databasename> 
<table1> <table2> <table3> 
<table4> --where 'created > DATE_SUB(now(), INTERVAL 7 DAY)',
<table5> --where 'created > DATE_SUB(now(), INTERVAL 7 DAY)
--single-transaction --no-create-info | gzip
> $(date +%Y-%m-%d-%H)-dump.sql.gz
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是table1,table2和table3将尝试获取table4的where子句.我不希望那个会导致这些表中不存在创建字段的错误的原因.

我试着在表名之后加上逗号(,),就像我在where子句之后做的那样,但它不起作用.

在这一点上,我几乎陷入困境,没有更多的选择期望创建两个不同的sql转储文件,我不想这样做.

小智 21

制作两个转储,或者如果你不想制作两个转储,那么尝试两个命令a.

mysqldump -h<hostname> -u<username> -p 
<databasename>  <table1> <table2> <table3>
--single-transaction --no-create-info > dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

mysqldump -h<hostname> -u<username> -p <databasename> 
<table4> --where 'created > DATE_SUB(now(), INTERVAL 7 DAY)',
<table5> --where 'created > DATE_SUB(now(), INTERVAL 7 DAY)
--single-transaction --no-create-info >> dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

C. __CODE__

  • 它不适用于每个表的不同_where_条件 (11认同)