如何使用mysqldump作为表的一部分?

所以我只能导出这样的表格:

mysqldump -u root -p db_name table_name > table_name.sql 

有没有办法导出只有一部分表与mysqldump? 例如,0 – 1000000行,1000000 – 2000000行等

我应该使用mysqldump还是查询来做到这一点?

 mysqldump -uroot -p db_name table_name --where='id<1000000' 

或者你可以使用

 SELECT * INTO OUTFILE 'data_path.sql' from table where id<100000 
 mysqldump --skip-triggers --compact --no-create-info --user=USER --password=PASSWORD -B DATABASE --tables MY_TABLE --where='SOME_COLUMN>=xxxx' > out.sql 

转储的文件与您使用SQL select的文件不同。 对于第二种方法,不能简单地使用:mysql database <table将表转储到数据库中。

在我的情况下,我已经执行这个:

 SELECT * INTO OUTFILE 'C:\Documents and Settings\Anton.Zarkov\Desktop\joomla_export\data_AZ.sql' FROM `jos_glossary` WHERE id>6000 
  • 没有语法错误 – 查询通过。
    1. 结果是NULL – 没有行被写入。 (我确定 – 最后一个ID是6458)
    2. 如果我重复查询,发生n error occurs => #1086 - File 'C:Documents and SettingsAnton.ZarkovDesktopjoomla_exportdata_AZ.sql' already exists
    3. 不幸的是,我无法在磁盘C上的任何位置find“现有”文件。

条件是: phpMyAdmin的SQL转储; 版本3.4.5; 主机:localhost; 服务器版本:5.5.16; PHP版本:5.3.8

 mysqldump -uroot -p db_name table_name --where'id<1000000' > yourdumpname.sql