RENAME TABLEtbl_name
TOnew_tbl_name
[,tbl_name2
TOnew_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_name
TOother_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.