是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
当前回答
如果您想从表中转储特定的字段,这可能很方便
1/创建临时表与你的查询。
create table tmptable select field1, field2, field3 from mytable where filter1 and fileter2 ;
2/ dump整个临时表。然后就有了包含特定字段的转储文件。
mysqldump -u user -p mydatabase tmptable > my-quick-dump.sql
其他回答
不是mysqldump,而是mysql cli…
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
你可以重定向到一个文件,如果你想:
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
更新: 最初的帖子问他是否可以通过查询从数据库转储。他问的和他的意思是不一样的。他只想mysqldump所有表。
mysqldump --tables myTable --where="id < 1000"
这应该可以
mysqldump --databases X --tables Y --where="1 limit 1000000"
您可以像这样将查询转储为csv:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
如果您想从表中转储特定的字段,这可能很方便
1/创建临时表与你的查询。
create table tmptable select field1, field2, field3 from mytable where filter1 and fileter2 ;
2/ dump整个临时表。然后就有了包含特定字段的转储文件。
mysqldump -u user -p mydatabase tmptable > my-quick-dump.sql
你可以使用mysqldump上的——where选项来生成你正在等待的输出:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
来自测试的最多100行。T1将从数据库表中转储。