Home » Mysql » How to use mysqldump for a portion of a table?

How to use mysqldump for a portion of a table?

Posted by: admin November 1, 2017 Leave a comment

Questions:

So I can export only a table like this:

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

Is there any way to export only a portion of a table with mysqldump? For example, 0 – 1,000,000 rows, 1,000,000 – 2,000,000 rows, etc.

Should I do this with mysqldump or a query?

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

or you can use

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

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

Questions:
Answers:

The file dumped is different from the file you use SQL select.
For the 2nd approach, you can not simply use: mysql database < table
to dump the table into a database.

Questions:
Answers:

In my case i have execute this:

SELECT * 
  INTO OUTFILE 'C:\Documents and Settings\Anton.Zarkov\Desktop\joomla_export\data_AZ.sql'
  FROM `jos_glossary`
 WHERE id>6000
  • there is no syntax error – the query passes through.
    1. The result is NULL – no rows were written. (I’m sure – the last ID is 6458)
    2. If I repeat the query an error occurs => #1086 - File 'C:Documents and SettingsAnton.ZarkovDesktopjoomla_exportdata_AZ.sql' already exists
    3. Unfortunately I cannot find the “existing” file anywhere on disk C. Where is it?

The conditions are:
phpMyAdmin SQL Dump; version 3.4.5; host: localhost; server version: 5.5.16; PHP version: 5.3.8

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