RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...
Esta sentencia renombra una o más tablas. Se añadió en MySQL 3.23.23.
La operación de renombrado se hace atómicamente, lo que significa que ningún otro proceso puede acceder a ninguna de las tablas mientras se realiza el renombrado. Por ejemplo, si se tiene una tabla existente old_table, se puede crear otra tabla new_table que tenga la misma estructura pero que esté vacía, y entonces reemplazar la tabla existente con la vacía tal como sigue:
CREATE TABLE new_table (...); RENAME TABLE old_table TO backup_table, new_table TO old_table;
Si la sentencia renombra más de una tabla, las operaciones se realizan de izquierda a derecha. Si se quiere intercambiar el nombre de dos tablas, se puede hacer de este modo (asumiendo que no existe ninguna tabla con el nombre tmp_table):
RENAME TABLE old_table TO tmp_table, new_table TO old_table, tmp_table TO new_table;
Mientras dos bases de datos estén en el mismo sistema de ficheros, tambien es posible renombrar una tabla para moverla desde una base de datos a otra:
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
Cuando se ejecuta RENAME, no se puede tener ninguna tabla bloqueada o transacciones activas. Además, se deben tener los privilegios ALTER y DROP en la tabla original, y los privilegios CREATE e INSERT en la nueva.
Si MySQL encuentra cualquier error en un renombrado múltiple, hará un renombrado inverso para todas las tablas renombradas para dejar las tablas con los nombres originales.
(4.1.1)
© Abril de 2005 Salvador Pozo, salvador@conclase.net