是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
当前回答
你可以使用mysqldump上的——where选项来生成你正在等待的输出:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
来自测试的最多100行。T1将从数据库表中转储。
其他回答
MySQL Workbench在GUI中也有这个功能。简单地运行一个查询,点击导出/导入旁边的保存图标:
在列表中选择“SQL INSERT语句(*. SQL)”。
输入一个名称,单击保存,确认表名,您将有您的转储文件。
导出查询结果命令行:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt
如果您想将最近n条记录导出到一个文件中,您可以运行以下命令:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
上面将最后100条记录保存到export_file中。Sql,假设要导出的表有一个自动递增的id列。
您需要修改用户、本地主机、数据库和表的值。您可以选择更改id列和导出文件名。
结合以上大部分内容,这里是我的实际示例,基于计量和时间戳选择记录。多年来我一直需要这个命令。执行得非常快。
mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep '^INSERT' > 5406.sql
要转储特定的表,
mysqldump -u root -p dbname -t tablename --where="id<30" > post.sql