Maison  >  Article  >  base de données  >  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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 23:10:29138parcourir

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 avec 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 :

<code class="sql">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;</code>

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

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

<code class="sql">-- 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);</code>

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'élève.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn