"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer l'insertion de clé étrangère dans les requêtes MySQL : deux scénarios courants

Comment gérer l'insertion de clé étrangère dans les requêtes MySQL : deux scénarios courants

Publié le 2024-11-08
Parcourir:168

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

Comment gérer l'insertion de clés étrangères dans les requêtes MySQL

Pour insérer efficacement des valeurs dans des tables avec des clés étrangères, explorons deux scénarios courants :

Scénario 1 : Ajouter un élève à un enseignant existant

Pour lier un nouvel élève à un enseignant préexistant, récupérez la clé étrangère à l'aide du nom d'un enseignant :

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;

Scénario 2 : Création simultanée d'un nouvel enseignant et d'un nouvel élève

Lors de la création d'un nouvel élève et d'un enseignant inexistant :

-- 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);

Dans ce scénario, la fonction LAST_INSERT_ID() est utilisée pour capturer l'ID de l'enseignant nouvellement inséré pour une utilisation immédiate comme clé étrangère pour l'étudiant.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3