Maison >base de données >tutoriel mysql >Comment puis-je renommer efficacement une base de données MySQL InnoDB ?

Comment puis-je renommer efficacement une base de données MySQL InnoDB ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-23 17:34:11399parcourir

How Can I Efficiently Rename a MySQL InnoDB Database?

Renommer une base de données MySQL : une solution efficace pour InnoDB

Renommer une base de données MySQL peut être une tâche ardue, en particulier pour les grandes bases de données et celles en utilisant InnoDB, qui stocke les données différemment de MyISAM. Cependant, avec la bonne approche, cela peut être fait efficacement.

Pour renommer une base de données InnoDB, nous devons créer une nouvelle base de données vide, puis y déplacer chaque table individuellement :

RENAME TABLE old_db.table TO new_db.table;

Il est important d'ajuster les autorisations de la base de données après la migration de la table.

Pour les scripts dans un shell, vous pouvez utiliser l'un des éléments suivants commandes :

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

ou

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 :

  • Ne laissez pas d'espace entre l'option -p et le mot de passe.
  • Si la base de données n'a pas de mot de passe, supprimez le -u username -ppassword part.
  • Si une table contient un déclencheur, elle ne peut pas être déplacée en utilisant la méthode ci-dessus. Dans de tels cas, utilisez la technique traditionnelle de clonage de base de données : mysqldump old_db | mysql new_db.
  • Les procédures stockées peuvent être copiées après le changement de nom de la base de données : 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