Maison > base de données > tutoriel mysql > Comment renommer une base de données MySQL avec des tables InnoDB sans dumping ni réimportation ?

Comment renommer une base de données MySQL avec des tables InnoDB sans dumping ni réimportation ?

Barbara Streisand
Libérer: 2024-12-14 11:52:10
original
881 Les gens l'ont consulté

How to Rename a MySQL Database with InnoDB Tables Without Dumping and Re-importing?

Renommer les bases de données MySQL pour les tables InnoDB

Au lieu de vider et de réimporter de vastes bases de données, vous souhaiterez peut-être les renommer directement. Bien que la syntaxe RENAME ne soit pas recommandée, il existe une approche plus fiable pour les tables InnoDB.

Étapes :

  1. Créez une nouvelle base de données vide avec le nom souhaité.
  2. Pour chaque table de la base de données d'origine, exécutez ce qui suit commande :
RENAME TABLE old_db.table TO new_db.table;
Copier après la connexion

Script du processus :

Pour plus de commodité, utilisez les scripts shell pour automatiser le changement de nom processus :

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \ 
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done
Copier après la connexion

Alternative :

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;
Copier après la connexion

Remarques :

  • Supprimez la partie mot de passe si votre base de données n'est pas un mot de passe- protected.
  • Les déclencheurs empêcheront les tables d'être déplacées à l'aide de cette méthode. Envisagez plutôt le clonage.
  • Les procédures stockées peuvent être copiées ultérieurement à l'aide de mysqldump -R old_db | mysql new_db.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal