Modificar tablas en una base de datos MySQL (Comando ALTER TABLE)

mysql

Otra tarea importante en la gestión de las bases de datos es poder modificar la estructura con la cual fueron creadas las entidades o tablas; esto comúnmente se realiza cuando nos equivocamos en la construcción de las tablas, surgen nuevas necesidades o simplemente se nos olvidó algún campo. Veamos entonces como modificar tablas en una base de datos MySQL con el comando ALTER TABLE y poder corregir posibles inconsistencias.

Modificar tablas en una base de datos MySQL (Comando ALTER TABLE)

Sigamos recreando ejemplos del uso de los diversos comandos y cláusulas de MySQL utilizando la tabla “Persona”, accede mediante el siguiente link.

Cómo crear tablas en MySQL uso de create table (MySQL – MaríaDB)

Sintaxis del comando ALTER TABLE en MySQL

ALTER TABLE tabla [DROP, ADD, MODIFY COLUMN, CHANGE];

En la sintaxis debemos especificar la tabla que modificaremos, los valores entre corchetes son las tres acciones disponibles sobre la estructura de la tabla, veamos ejemplos de cada uno de ellos.

Ejemplo 1: Añadiendo un nuevo campo a la tabla Persona:

Nuevo campo: “Email”, de tipo varchar, logintud 200.

ALTER TABLE Persona ADD COLUMN Email VARCHAR(200) NOT NULL;

El campo “Email” será añadido al final de la tabla; recordando que si la tabla cuenta con registros, tendrás una nueva columna con campos vacíos.

Ejemplo 2: Eliminando una columna de la tabla.

ALTER TABLE Persona DROP COLUMN Email;

El código anterior elimna la columna “Email”, si la columna ya contaba con datos; estos serán eliminados.

Ejemplo 3: Modificando una columna existente (Tipo de dato y longitud).

Supongamos que debemos ampliar la longitud de datos de la columna “Dirección”; actualemente está en 150 y debemos cambiarla a 200, además establecerla como NOT NULL.

ALTER TABLE Persona MODIFY COLUMN Direccion VARCHAR(200) NOT NULL;

Debes tener presente que no hay ningún problema con los datos ya almacenados en esa columna cuando deseas ampliar la longitud. Sin embargo si reduces la longitud y ya existen registros con longitud mayor a la que deseas cambiar; estos registros serán “recortados”, a la nueva longitud (Esto podría dejar datos inconsistentes).

Ejemplo 4. Cambiando el nombre de una columna.

Si solo nos equivocamos en un nombre de una de nuestras columnas, podemos repararlo de la siguiente forma:

ALTER TABLE Persona CHANGE Direccion Direcciones VARCHAR(200) NOT NULL; 

Ahora la columna tiene un nuevo nombre “Direcciones”; como puedes ver también puedes establecer el tipo de datos y la longitud.

Ejemplo 5: Añadir una llave primaria.

Supongamos que hemos creado la tabla “Persona”, olvidando establecer el campo Id como llave primaria, muy fácilmente podemos definirlo así.

ALTER TABLE Persona CHANGE Id Id INT(10) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (Id);

Recomendaciones en el uso de ALTER TABLE en MySQL

Los comandos que trabajan en la modificación de la estructura de alguna de las partes de una base de datos deben ser tratados con cuidado; para ello sigue los siguientes ítems.

  • Referencia bien las tablas que deseas modificar.
  • Piensa los posibles problemas o inconvenientes que tendrás al hacer los cambios.
  • Realiza una copia de seguridad de la base de datos antes de la operación.
  • Analiza el contenido de la tabla antes de cambiar las longitudes de los campos.
  • Al ser una base de datos grande, documenta todos los cambios realizados.
  • Si tu base de datos está en uso por varios usuarios, realiza los cambios en momentos del día de bajo uso.
  • Practica con una base de datos igual para pruebas, antes de publicar los cambios.

Siguiendo esto pasos podrás modificar tablas en una base de datos MySQL, garantizando la disponibilidad de los datos almacenados, así como también la integridad de los datos. Toma todas las medidas posibles cuando estés frente a una modificación sensible; podrías perder días, semanas o inclusive meses de trabajo.