如何将mysqldump用于表的一部分?

问题描述 投票:56回答:6

所以我只能导出这样一个表:

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

有没有办法只使用mysqldump导出表的一部分?例如,0 - 1,000,000行,1,000,000 - 2,000,000行等。

我应该使用mysqldump还是查询?

mysql mysqldump
6个回答
116
投票
mysqldump -uroot -p db_name table_name --where='id<1000000'

或者你可以使用

SELECT * INTO OUTFILE 'data_path.sql' from table where id<100000

3
投票
mysqldump --skip-triggers --compact --no-create-info --user=USER --password=PASSWORD -B DATABASE --tables MY_TABLE --where='SOME_COLUMN>=xxxx' > out.sql

2
投票

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


0
投票

在我的情况下,我已执行此操作:

SELECT * 
  INTO OUTFILE 'C:\Documents and Settings\Anton.Zarkov\Desktop\joomla_export\data_AZ.sql'
  FROM `jos_glossary`
 WHERE id>6000
  • 没有语法错误 - 查询通过。 结果是NULL - 没有写行。 (我敢肯定 - 最后一个ID是6458) 如果我重复查询an error occurs => #1086 - File 'C:Documents and SettingsAnton.ZarkovDesktopjoomla_exportdata_AZ.sql' already exists 不幸的是我无法在磁盘C上的任何地方找到“现有”文件。它在哪里?

条件是:phpMyAdmin SQL Dump;版本3.4.5; host:localhost;服务器版本:5.5.16; PHP版本:5.3.8


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

0
投票

下面的查询是从id范围中选择你可以使用date_created或any而不是id

mysqldump --opt --host=dns --user=user_name --password=your_passwd db_name --tables table_name  --where "id > 1 and id < 100 " > /file_name.sql

例如:qazxsw poi - >而不是id

© www.soinside.com 2019 - 2024. All rights reserved.