web-dev-qa-db-fra.com

Comment sauvegarder une seule table dans une base de données MySQL?

Par défaut, mysqldump prend la sauvegarde de toute une base de données. Je dois sauvegarder une seule table dans MySQL. C'est possible? Comment puis-je le restaurer?

407
Mandar Pande

Décharger et restaurer une seule table à partir de .sql

Dump

mysqldump db_name table_name > table_name.sql

Dumping depuis une base de données distante

mysqldump -u <db_username> -h <db_Host> -p db_name table_name > table_name.sql

Pour référence ultérieure:

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Restaurer

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

ou en une ligne

mysql -u username -p db_name < /path/to/table_name.sql


Vider et restaurer une seule table à partir d'un format compressé (.sql.gz)

Crédit: John McGrath

Dump

mysqldump db_name table_name | gzip > table_name.sql.gz

Restaurer

gunzip < table_name.sql.gz | mysql -u username -p db_name

778
Ozair Kafray

mysqldump peut prendre un paramètre nom_de_table afin qu'il ne sauvegarde que les tables données.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
22
Jacob

essayer

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • tables de noms $ cotent line;)
15
Robin Gomez

Nous pouvons prendre un dump mysql de n'importe quelle table avec n'importe quelle condition donnée comme ci-dessous

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Si nous voulons ajouter une condition where spécifique à la table, nous pouvons utiliser la commande suivante

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
12
minhas23

Vous pouvez facilement transférer des tables sélectionnées à l'aide de MYSQLWorkbench tool, individuellement ou en groupe de tables en une sauvegarde, puis l'importer comme suit: vous pouvez également ajouter informations sur l'hôte si vous l'exécutez dans votre répertoire local. en ajoutant - h nom d'utilisateur IP.ADDRESS.NUMBER after-u

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
8
danielad

Vous pouvez utiliser ce code:

Cet exemple prend une sauvegarde de la base de données sugarcrm et vide la sortie dans sugarcrm.sql

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Sugarcrm.sql contiendra les commandes drop table, create table et insert pour toutes les tables de la base de données sugarcrm. Voici une sortie partielle de sugarcrm.sql, affichant les informations de vidage de la table accounts_contacts:

-

- Structure de table pour la table accounts_contacts

DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--
6
Linda Martin

Vous pouvez utiliser le code ci-dessous:

  1. Pour la sauvegarde à structure unique à table unique

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Pour une structure à table unique avec des données

-

mysqldump <database name> <tablename> > <filename.sql>

J'espère que ça va aider.

4
Phoenix

Vous pouvez soit utiliser mysqldump à partir de la ligne de commande:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

Vous pouvez également utiliser MySQL Workbench:

Allez à gauche> Exporter des données> Sélectionnez un schéma> Sélectionnez des tables et cliquez sur Exporter.

4
SAM AB