问题描述
|
所以我只能导出这样的表:
mysqldump -u root -p db_name table_name > table_name.sql
有什么办法可以用mysqldump导出表的一部分?例如,0-1-1,000,000行,1,000-2,000行,等等。
我应该使用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选择的文件不同。
对于第二种方法,您不能简单地使用:mysql数据库<表
将表转储到数据库中。
,就我而言,我已经执行了:
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的任何位置都找不到\“ existing \”文件。它在哪里?
条件是:
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
,下面的查询是从ID范围中选择,您可以使用date_created或任何代替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
例如:--where=\"date_created > \'2019-01-18\' \"
->插入id