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
Barbara Streisandoriginal
2024-12-14 11:52:10885parcourir

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;

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

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;

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!

Déclaration:
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