mouredev / hello-sql

Curso para aprender los fundamentos del lenguaje SQL y bases de datos relacionales desde cero y para principiantes. Elaborado durante las emisiones en directo desde el canal de Twitch de MoureDev.
https://mouredev.link/sql
Apache License 2.0
4.67k stars 312 forks source link

Duda sobre las llaves foráneas de la fila con un dato nulo que nunca debió serlo #5

Open moshpirit opened 9 months ago

moshpirit commented 9 months ago

Hola Brais, Antes de nada, felicitarte por tu grandísimo trabajo, me está encantando el vídeo ❤️

Mi duda va sobre una sección concreta del vídeo, concretamente en el minuto 4:17:53. Estamos analizando las relaciones N:M; y nos muestras la importancia de declarar bien los atributos de las columnas con un ejemplo, en el que queremos relacionar una tabla de usuarios con los lenguajes de programación que saben programar.

Primero nos enseñas cómo se insertan los datos (INSERT INTO users_languages(users_id, languages_id) VALUES (1,1)), y a continuación (4:22:13) incluyes solo el primer campo (INSERT INTO users_languages(users_id) VALUES (1)). Workbench grita "the following task will not be executed" porque no hemos especificado que ni users_id ni languages_id sean no nulos (4:23:55).

Tras esto, borras la fila, intentas actualizar la tabla para que no acepte valores no nulos, y grita porque tiene claves foráneas. Pero justo tras eso, te deja cambiar los atributos de la tabla (4:25:30) y no entiendo muy bien por qué, ¿qué ha cambiado entre un momento y otro?, en el vídeo parece que no modificas nada, simplemente revisas las tablas. No sé si en el directo de Twitch sí se ve, pero me gustaría saber qué hacer en el hipotético caso de que me ocurriese algo similar.