MySQL – Agregar columna con clave foránea a tabla

En este post te mostraré un ejemplo de cómo agregar una columna a una tabla y además convertir esa columna en una llave o clave foránea. Es decir, primero la agregamos y después la convertimos en llave.

Agregar columna

Para agregar una columna en MySQL hacemos:

ALTER TABLE tabla ADD COLUMN columna DEFINICIÓN;

En mi caso tengo una tabla de materias y la relacionaré con la tabla cursos, así que es:

alter table materias add column id_curso bigint unsigned;

Con eso hemos agregado la columna pero no la clave. Es importante notar que mi columna se llama id_curso.

Crear clave foránea

Ahora que tenemos la columna vamos a crear una restricción o constraint con:

ALTER TABLE tabla ADD CONSTRAINT nombre_constraint FOREIGN KEY(columna_creada_anteriormente) REFERENCES tabla(columna);

En mi caso tengo la columna llamada id_curso y la relacionaré con la columna id de la tabla cursos así que queda de la siguiente manera:

ALTER TABLE materias
ADD CONSTRAINT FK_materias_cursos 
FOREIGN KEY(id_curso)
REFERENCES cursos(id);

Finalmente al mostrar la estructura de la tabla vemos que es correcto y que en la columna Key tiene MUL.

describe materias;
+------------+---------------------+------+-----+---------+----------------+
| Field      | Type                | Null | Key | Default | Extra          |
+------------+---------------------+------+-----+---------+----------------+
| id         | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| nombre     | text                | NO   |     | NULL    |                |
| created_at | timestamp           | YES  |     | NULL    |                |
| updated_at | timestamp           | YES  |     | NULL    |                |
| id_curso   | bigint(20) unsigned | YES  | MUL | NULL    |                |
+------------+---------------------+------+-----+---------+----------------+

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *