"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo manejar la inserción de claves externas en consultas MySQL: dos escenarios comunes

Cómo manejar la inserción de claves externas en consultas MySQL: dos escenarios comunes

Publicado el 2024-11-08
Navegar:405

How to Handle Foreign Key Insertion in MySQL Queries: Two Common Scenarios

Cómo abordar la inserción de claves externas en consultas MySQL

Para insertar valores de manera eficiente en tablas con claves externas, exploremos dos escenarios comunes:

Escenario 1: Agregar un estudiante con un maestro existente

Para vincular un nuevo estudiante a un maestro preexistente, recupere la clave externa usando el nombre de un maestro:

INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
SELECT 'Joe The Student', id_teacher
FROM TAB_TEACHER
WHERE name_teacher = 'Professor Jack'
LIMIT 1;

Escenario 2: Creación simultánea de un nuevo profesor y un estudiante

Al crear un nuevo estudiante y un profesor inexistente:

-- Insert a new teacher first
INSERT INTO TAB_TEACHER(name_teacher)
VALUES ('Professor Jade');

-- Retrieve the newly created teacher's ID
SET @teacher_id = LAST_INSERT_ID();

-- Insert the new student with the foreign key pointing to the new teacher
INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
VALUES ('Mia The Student', @teacher_id);

En este escenario, la función LAST_INSERT_ID() se utiliza para capturar el ID del profesor recién insertado para su uso inmediato como clave externa para el estudiante.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3