Estructura · microlección

Renombrar columnas y tablas con ALTER TABLE

Renombrar parece un cambio pequeño, pero puede romper cualquier objeto o aplicación que todavía use el nombre anterior.

Lectura: 5–7 minEjemplo ejecutadoPlan de migración
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

Renombrar columna y tabla
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

Tabla temporal de demostración
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;
Resultado comprobado en SQLite
idnombremovil
1Ana600111222

La fila no cambia. Solo cambian los identificadores utilizados para encontrar la tabla y la columna.

Planifica la transición

  1. Busca el nombre antiguo en código, vistas, procedimientos, informes y documentación.
  2. Comprueba dependencias en una copia de la base.
  3. Actualiza primero los consumidores que puedan aceptar ambos nombres o coordina un despliegue conjunto.
  4. Ejecuta el cambio dentro de una ventana controlada.
  5. 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

Básica · esquema

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.

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.

Conceptos relacionados

Fuentes técnicas consultadas