Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

SQL

Sentencias

ALTER TABLE ANALYZE TABLE BACKUP TABLE BEGIN BEGIN WORK CHECK TABLE CHECKSUM TABLE COMMIT CREATE DATABASE CREATE TABLE CREATE USER DELETE DESCRIBE DO DROP DATABASE DROP INDEX DROP TABLE DROP USER FLUSH GRANT HANDLER INSERT INSERT ... SELECT INSERT DELAYED JOIN KILL LOAD DATA LOCK TABLES OPTIMIZE TABLE REPAIR TABLE REPLACE RESET REVOKE ROLLBACK SELECT SET SET TRANSACTION SHOW SHOW CHARACTER SET SHOW COLLATION SHOW COLUMNS SHOW CREATE DATABASE SHOW CREATE TABLE SHOW CREATE VIEW SHOW DATABASES SHOW ENGINES SHOW ERRORS SHOW GRANTS SHOW INDEX SHOW INNODB STATUS SHOW KEYS SHOW LOGS SHOW PRIVILEGES SHOW PROCESSLIST SHOW STATUS SHOW TABLE STATUS SHOW TABLES SHOW VARIABLES SHOW WARNINGS START TRANSACTION TRUNCATE UNION UNLOCK TABLES UPDATE USE

RENAME TABLE

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)