Je ne peux donc exporter qu'un tableau comme celui-ci:
mysqldump -u root -p db_name table_name > table_name.sql
Est-il possible d'exporter uniquement une partie d'une table avec mysqldump? Par exemple, 0 - 1 000 000 de lignes, 1 000 000 - 2 000 000 de lignes, etc.
Dois-je le faire avec mysqldump ou une requête?
mysqldump -uroot -p db_name table_name --where='id<1000000'
ou vous pouvez utiliser
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
Le fichier vidé est différent du fichier que vous utilisez SQL select. Pour la 2ème approche, vous ne pouvez pas simplement utiliser: base de données mysql <table Pour vider la table dans une base de données.
Dans mon cas, j'ai exécuter ceci:
SELECT *
INTO OUTFILE 'C:\Documents and Settings\Anton.Zarkov\Desktop\joomla_export\data_AZ.sql'
FROM `jos_glossary`
WHERE id>6000
NULL
- aucune ligne n'a été écrite. (Je suis sûr que le dernier identifiant est 6458)n error occurs => #1086 - File 'C:Documents and SettingsAnton.ZarkovDesktopjoomla_exportdata_AZ.sql' already exists
Les conditions sont les suivantes: phpMyAdmin SQL Dump; version 3.4.5; Hôte: localhost; version du serveur: 5.5.16; PHP version: 5.3.8
mysqldump -uroot -p db_name table_name --where'id<1000000' > yourdumpname.sql
La requête ci-dessous consiste à sélectionner dans la plage d'id, vous pouvez utiliser date_created ou any au lieu de id
mysqldump --opt --Host=dns --user=user_name --password db_name --tables table_name --where "id > 1 and id < 100 " > /file_name.sql
ex: --where="date_created > '2019-01-18' "
-> insted of id