Maison  >  Article  >  base de données  >  Comment insérer des valeurs avec des clés étrangères dans les tables MySQL : clés existantes ou nouvelles ?

Comment insérer des valeurs avec des clés étrangères dans les tables MySQL : clés existantes ou nouvelles ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 21:24:30392parcourir

How to Insert Values with Foreign Keys in MySQL Tables: Existing vs. New Keys?

Insérer des valeurs avec des clés étrangères dans les tables MySQL

Dans la gestion de bases de données, il est courant de créer des tables avec des contraintes de clés étrangères pour établir des relations entre elles . Cette question explore comment insérer des valeurs dans des tables avec des clés étrangères, en considérant deux scénarios.

Scénario 1 : Insertion avec une valeur de clé étrangère existante

Pour insérer un dossier d'élève avec un dossier d'enseignant existant et récupérez la clé étrangère via le nom de l'enseignant, utilisez la requête suivante :

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

Cette requête garantit que le dossier d'élève inséré est lié au bon enseignant en fonction du nom fourni.

Scénario 2 : Insertion avec une nouvelle valeur de clé étrangère

Pour insérer simultanément un nouvel étudiant et un nouvel enseignant, la procédure suivante doit être suivie :

  1. Insérer la fiche de l'enseignant :

    <code class="sql">INSERT INTO TAB_TEACHER(name_teacher)
    VALUES ('Professor Jane')</code>
  2. Récupérer l'identifiant de l'enseignant nouvellement inséré :

    <code class="sql">SET @new_teacher_id = LAST_INSERT_ID()</code>
  3. Insérer le dossier étudiant avec la clé étrangère définie sur l'identifiant du nouvel enseignant :

    <code class="sql">INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
    VALUES ('Mary The Student', @new_teacher_id)</code>

En exécutant ces étapes, un nouveau dossier étudiant lié au dossier enseignant nouvellement créé sera inséré dans le base de données.

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