RENAME TABLEtbl_nameTOnew_tbl_name[,tbl_name2TOnew_tbl_name2] ...
Mit dieser Anweisung werden eine oder mehrere Tabellen umbenannt.
Der Umbenennungsvorgang erfolgt atomisch, d. h., kein anderer
Thread kann währenddessen auf die umzubenennende(n) Tabelle(n)
zugreifen. Wenn Sie beispielsweise eine Tabelle
old_table haben, können Sie eine andere
Tabelle new_table erstellen, die dieselbe
Struktur hat, aber leer ist, und die vorhandene Tabelle dann wie
folgt durch die leere Tabelle ersetzen (sofern
backup_table nicht bereits vorhanden ist):
CREATE TABLE new_table (...); RENAME TABLE old_table TO backup_table, new_table TO old_table;
Wenn die Anweisung mehrere Tabellen umbenennt, erfolgen die
Umbenennungen von links nach rechts. Wollen Sie zwei
Tabellennamen gegeneinander austauschen, dann können Sie dies
wie folgt tun (sofern tmp_table nicht bereits
vorhanden ist):
RENAME TABLE old_table TO tmp_table,
new_table TO old_table,
tmp_table TO new_table;
Solange zwei Datenbanken sich im selben Dateisystem befinden,
können Sie mit RENAME TABLE auch eine
Tabelle von einer Datenbank in eine andere verschieben:
RENAME TABLEcurrent_db.tbl_nameTOother_db.tbl_name;
RENAME TABLE funktioniert auch bei Views,
solange Sie nicht versuchen, einen View in einer anderen
Datenbank umzubenennen.
Wenn Sie RENAME ausführen, dürfen keine
Tabellen gesperrt und keine Transaktionen aktiv sein. Sie
benötigen für die Ursprungstabelle ferner die Berechtigungen
ALTER und DROP sowie die
Berechtigungen CREATE und
INSERT für die neue Tabelle.
Wenn MySQL in einer tabellenübergreifenden Umbenennungsaktion auf Fehler trifft, wird für alle umbenannten Tabellen eine umgekehrte Umbenennung durchgeführt, um den ursprünglichen Zustand wiederherzustellen.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.
