Contenido de esta guía
Qué hace un cambio de nombre
Renombrar una tabla o columna modifica su identificador en el esquema. Los datos permanecen en la misma estructura, pero las consultas y aplicaciones deben empezar a utilizar el nombre nuevo.
El motor puede actualizar algunas dependencias internas, como índices, vistas o disparadores, pero el alcance cambia por motor y versión. El código externo, los informes y las consultas guardadas no se corrigen automáticamente.
Sintaxis habitual
ALTER TABLE clientes_demo
RENAME COLUMN telefono TO movil;
ALTER TABLE clientes_demo
RENAME TO contactos_demo;PostgreSQL y SQLite utilizan estas formas. MySQL actual admite RENAME COLUMN y también conserva variantes históricas como CHANGE. SQL Server usa el procedimiento sys.sp_rename para renombrar columnas y otros objetos, no esta misma forma de ALTER TABLE.
Ejemplo comprobado
CREATE TABLE clientes_demo (
id INTEGER PRIMARY KEY,
nombre TEXT NOT NULL,
telefono TEXT
);
INSERT INTO clientes_demo (id, nombre, telefono)
VALUES (1, 'Ana', '600111222');
ALTER TABLE clientes_demo
RENAME COLUMN telefono TO movil;
ALTER TABLE clientes_demo
RENAME TO contactos_demo;
SELECT id, nombre, movil
FROM contactos_demo;| id | nombre | movil |
|---|---|---|
| 1 | Ana | 600111222 |
La fila no cambia. Solo cambian los identificadores utilizados para encontrar la tabla y la columna.
Planifica la transición
- Busca el nombre antiguo en código, vistas, procedimientos, informes y documentación.
- Comprueba dependencias en una copia de la base.
- Actualiza primero los consumidores que puedan aceptar ambos nombres o coordina un despliegue conjunto.
- Ejecuta el cambio dentro de una ventana controlada.
- Prueba lecturas, escrituras y permisos con el nombre nuevo.
Errores frecuentes
Suponer que todo se actualizará solo
SQLite actualiza referencias internas cuando el cambio puede resolverse sin ambigüedad, pero una vista o disparador ambiguo puede hacer que la operación falle. SQL Server advierte que renombrar objetos no actualiza automáticamente todas las referencias.
No uses un renombrado para cambiar el significado de los datos sin revisar también tipos, restricciones y documentación. Un nombre nuevo no corrige una columna con un modelo incorrecto.
Comprueba lo aprendido
Renombra una columna ambigua
En la tabla pedidos_demo, la columna cliente guarda realmente un identificador. Escribe la sentencia para llamarla cliente_id y una consulta de comprobación.
ALTER TABLE pedidos_demo.RENAME COLUMN.id y cliente_id para comprobarlo.Solución razonada
ALTER TABLE pedidos_demo
RENAME COLUMN cliente TO cliente_id;
SELECT id, cliente_id
FROM pedidos_demo;La solución es válida en PostgreSQL, MySQL actual y SQLite actual. En SQL Server debes usar la herramienta de renombrado documentada para ese motor.
Compatibilidad entre motores
PostgreSQL, MySQL y SQLite documentan formas de renombrar tablas y columnas. SQL Server utiliza sys.sp_rename para columnas y objetos. En SQLite, el cambio de nombre de columna se propaga a índices, disparadores y vistas cuando no crea una ambigüedad semántica; para tablas, el tratamiento histórico de claves foráneas depende de versiones y opciones antiguas, por lo que conviene usar una versión actual y revisar el esquema.
Qué debes recordar
- Los datos no se mueven, pero cambia el contrato del esquema.
- Busca dependencias externas antes de renombrar.
- La sintaxis no es idéntica en SQL Server.
- Prueba el cambio y su reversión en una copia.