Declaración ALTER TABLE de MySQL
La sentencia `ALTER TABLE` de MySQL se utiliza para modificar la estructura de una tabla existente. Te permite añadir, eliminar o modificar columnas y restricciones de una tabla, lo que la hace versátil para la gestión de esquemas de bases de datos.
Utilización
La sentencia `ALTER TABLE` se emplea cuando necesitas cambiar la estructura de una tabla, garantizando al mismo tiempo la conservación de los datos. Se puede utilizar para renombrar tablas, añadir o eliminar columnas y modificar columnas existentes.
ALTER TABLE table_name
[ADD | DROP | MODIFY | CHANGE | RENAME TO] [COLUMN column_name] [column_definition];
En esta sintaxis, `ALTER TABLE nombre_tabla` especifica la tabla que se va a modificar. Acciones como `ADD`, `DROP` y `MODIFY` se aplican a las columnas, mientras que `RENAME TO` se utiliza para las tablas. Ten en cuenta que `CAMBIAR` se utiliza para cambiar el nombre de una columna.
Ejemplos
1. Añadir una columna
ALTER TABLE employees
ADD COLUMN birthdate DATE;
Este ejemplo añade una nueva columna `birthdate` de tipo `DATE` a la tabla `employees`.
2. Modificar una columna
ALTER TABLE products
MODIFY COLUMN price DECIMAL(10, 2);
Aquí, la columna `precio` de la tabla `productos` se modifica para que tenga un tipo de dato `DECIMAL` con una precisión de 10 y una escala de 2.
3. Cambiar el nombre de una columna
ALTER TABLE employees
CHANGE COLUMN old_name new_name VARCHAR(255);
Este ejemplo cambia el nombre de una columna `nombre_antiguo` por `nombre_nuevo` con un tipo de datos `VARCHAR(255)` en la tabla `empleados`.
4. Cambiar el nombre de una tabla
ALTER TABLE orders
RENAME TO customer_orders;
Este ejemplo cambia el nombre de la tabla `pedidos` a `pedidos_clientes`, lo que puede ser útil para identificar mejor las tablas.
5. Añadir una clave primaria
ALTER TABLE orders
ADD PRIMARY KEY (order_id);
Esto añade una restricción de clave primaria a la columna `order_id` de la tabla `orders`.
6. Eliminación de una clave foránea
ALTER TABLE orders
DROP FOREIGN KEY fk_customer;
Esto elimina la restricción de clave foránea denominada `fk_customer` de la tabla `orders`.
7. Establecer un valor por defecto
ALTER TABLE products
ALTER COLUMN price SET DEFAULT 0.00;
Esto establece el valor por defecto de la columna `precio` en `0,00` en la tabla `productos`.
Consejos y buenas prácticas
- Garantizar la integridad de los datos. Haz siempre una copia de seguridad de tus datos y prueba las operaciones "ALTER TABLE" en un entorno que no sea de producción, para evitar la pérdida de datos y garantizar la ejecución.
- Minimiza el tiempo de inactividad. Ten en cuenta que modificar tablas grandes puede bloquear la tabla durante un tiempo considerable; planifica estos cambios durante las horas de menor actividad. Algunas operaciones pueden reconstruir toda la tabla, afectando al rendimiento.
- Utiliza nombres descriptivos. Cuando añadas columnas, elige nombres claros y descriptivos para mantener la claridad en el esquema de tu base de datos.
- Consideraciones de compatibilidad. Ten en cuenta los posibles problemas al modificar tablas con restricciones de clave externa, ya que pueden afectar a tablas relacionadas.