Heim >Datenbank >MySQL-Tutorial >Wie benenne ich eine MySQL-Datenbank mit InnoDB-Tabellen um, ohne sie zu sichern und erneut zu importieren?

Wie benenne ich eine MySQL-Datenbank mit InnoDB-Tabellen um, ohne sie zu sichern und erneut zu importieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 11:52:10883Durchsuche

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

MySQL-Datenbanken für InnoDB-Tabellen umbenennen

Als Alternative zum Dumpen und erneuten Importieren großer Datenbanken möchten Sie diese möglicherweise direkt umbenennen. Obwohl die RENAME-Syntax nicht empfehlenswert ist, gibt es einen zuverlässigeren Ansatz für InnoDB-Tabellen.

Schritte:

  1. Erstellen Sie eine leere neue Datenbank mit dem gewünschten Namen.
  2. Führen Sie für jede Tabelle in der Originaldatenbank Folgendes aus Befehl:
RENAME TABLE old_db.table TO new_db.table;

Skripting des Prozesses:

Verwenden Sie der Einfachheit halber Shell-Skripting, um die Umbenennung zu automatisieren Prozess:

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

Alternativ:

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;

Hinweise:

  • Entfernen Sie den Passwortteil, wenn Ihre Datenbank nicht passwortgeschützt ist. geschützt.
  • Trigger verhindern, dass Tabellen mit dieser Methode verschoben werden. Erwägen Sie stattdessen das Klonen.
  • Gespeicherte Prozeduren können anschließend mit mysqldump -R old_db | kopiert werden mysql new_db.

Das obige ist der detaillierte Inhalt vonWie benenne ich eine MySQL-Datenbank mit InnoDB-Tabellen um, ohne sie zu sichern und erneut zu importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn