Agregar columna llave foránea (fk) en MySQL

Resumen: en este post te muestro cómo modificar o alterar una tabla de MySQL para agregar una columna y hacer que esa columna sea una clave foránea.

Las relaciones en MySQL son importantes para tener datos en distintas tablas y no caer en la redundancia de campos. En ocasiones vamos a necesitar agregar una clave foránea a una tabla ya existente.

Agregar foreign key a tabla de MySQL

La sintaxis es:

Ejemplo para agregar columna

Tengo una tabla de ventas que es así:

Quiero agregarle una columna que guarde relación con otra tabla llamada médicos. Primero debo averiguar cómo es la tabla de médicos, es así:

Es importante tener la definición de la columna, en este caso es un int de 200 que no es null. Para agregar la relación, la consulta es:

Ya que agrego la columna idMedico a la tabla ventas, la definición de la columna debe ser la misma que la de la otra tabla a la que relaciono.

Debo colocar un valor default y ese valor debe existir en la tabla médicos (es decir, un médico debe tener el id 1 y debe existir)

Después fk_id_medico es el nombre del constraint, y en foreign key indico que la columna idMedico es mi llave foránea que referencia a la columna id en medicos.

Cuando ejecuto esa consulta, la columna se agrega correctamente:

Ahora solo basta hacer un update o revisar toda la tabla pues todos los valores de idMedico son 1, es mejor actualizarlo o crear un valor general como “médico general” en este caso, y así las ventas que no tenían médico se registran con uno por defecto; las siguientes ya tendrán uno específico.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

1 comentario en “Agregar columna llave foránea (fk) en MySQL”

Dejar un comentario