问题
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?
回答1:
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
回答2:
mysqldump --skip-triggers --compact --no-create-info --user=USER --password=PASSWORD -B DATABASE --tables MY_TABLE --where='SOME_COLUMN>=xxxx' > out.sql
回答3:
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.
回答4:
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.
- The result is
NULL
- no rows were written. (I'm sure - the last ID is 6458) - If I repeat the query a
n error occurs => #1086 - File 'C:Documents and SettingsAnton.ZarkovDesktopjoomla_exportdata_AZ.sql' already exists
- Unfortunately I cannot find the "existing" file anywhere on disk C. Where is it?
- The result is
The conditions are: phpMyAdmin SQL Dump; version 3.4.5; host: localhost; server version: 5.5.16; PHP version: 5.3.8
回答5:
mysqldump -uroot -p db_name table_name --where'id<1000000' > yourdumpname.sql
回答6:
Below query is to select from id range you can use date_created or any instead of 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
ex: --where="date_created > '2019-01-18' "
--> insted of id
来源:https://stackoverflow.com/questions/5658284/how-to-use-mysqldump-for-a-portion-of-a-table