Главное меню

Логин

Материалы

Переименование таблиц MySql

( 1 Голос ) 
Столкнулся недавно с проблемой замены префиксов в базе данных и, хотя этот вопрос давно озвучен на многих сайтах решу его затронуть.

Для переименования таблиц используем оператор 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 обнаруживает ошибку в переименовании, то произойдет восстановление исходных имен таблиц.

Недостаточно прав для комментирования

© 2007-2012 Aqaus | Joomla 1.5 Templates by vonfio.de