是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
是否可以通过单个SQL查询来做mysqldump ?
我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样
当前回答
MySQL Workbench在GUI中也有这个功能。简单地运行一个查询,点击导出/导入旁边的保存图标:
在列表中选择“SQL INSERT语句(*. SQL)”。
输入一个名称,单击保存,确认表名,您将有您的转储文件。
其他回答
使用where查询转储表:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
转储整个表:
mysqldump mydatabase mytable > data.sql
注:
用你想要的值替换mydatabase、mytable和where语句。 默认情况下,mysqldump将在输出中包含DROP TABLE和CREATE TABLE语句。因此,如果您希望在从保存的数据文件恢复时不删除表中的所有数据,请确保使用——no-create-info选项。 您可能需要在上面的示例命令中添加适当的-h、-u和-p选项,以便分别指定所需的数据库主机、用户和密码。
导出查询结果命令行:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt
MySQL Workbench在GUI中也有这个功能。简单地运行一个查询,点击导出/导入旁边的保存图标:
在列表中选择“SQL INSERT语句(*. SQL)”。
输入一个名称,单击保存,确认表名,您将有您的转储文件。
你可以使用mysqldump上的——where选项来生成你正在等待的输出:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
来自测试的最多100行。T1将从数据库表中转储。
您可以像这样将查询转储为csv:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'