Материалы
Переименование таблиц MySql
Столкнулся недавно с проблемой замены префиксов в базе данных и, хотя этот вопрос давно озвучен на многих сайтах решу его затронуть.
Для переименования таблиц используем оператор RENAME TABLE:
RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
При переименовании таблиц к ним не должен осуществляться никакой доступ.
Возможна замена таблицы пустой таблицей:
CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;
Переименование производится слева направо. Для обмена именами между двумя таблицами необходимо:
RENAME TABLE old_table TO backup_table,
new_table TO old_table,
backup_table TO new_table;
Для двух баз данных, находящихся на одном диске, можно осуществлять обмен именами:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
Внимание! При выполнении команды RENAME все таблицы должны быть доступны (не заблокированы) и не должно быть активных транзакций. Также нужно иметь привилегии ALTER и DROP для исходной таблицы и привилегии CREATE и INSERT - для новой.
Если MySQL обнаруживает ошибку в переименовании, то произойдет восстановление исходных имен таблиц.
Для переименования таблиц используем оператор RENAME TABLE:
RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
При переименовании таблиц к ним не должен осуществляться никакой доступ.
Возможна замена таблицы пустой таблицей:
CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;
Переименование производится слева направо. Для обмена именами между двумя таблицами необходимо:
RENAME TABLE old_table TO backup_table,
new_table TO old_table,
backup_table TO new_table;
Для двух баз данных, находящихся на одном диске, можно осуществлять обмен именами:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
Внимание! При выполнении команды RENAME все таблицы должны быть доступны (не заблокированы) и не должно быть активных транзакций. Также нужно иметь привилегии ALTER и DROP для исходной таблицы и привилегии CREATE и INSERT - для новой.
Если MySQL обнаруживает ошибку в переименовании, то произойдет восстановление исходных имен таблиц.

