Maison >base de données >tutoriel mysql >Comment insérer des valeurs dans des tables MySQL avec des clés étrangères ?

Comment insérer des valeurs dans des tables MySQL avec des clés étrangères ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 13:46:02581parcourir

How to Insert Values into MySQL Tables with Foreign Keys?

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

Dans MySQL, lors de la création de tables avec des relations de clés étrangères, il est important de comprendre comment insérer les valeurs correctement. Voici un aperçu de la façon de gérer deux scénarios :

Cas 1 : Insérer un élève avec un enseignant préexistant

Pour insérer une fiche d'élève avec un référencement de clé étrangère un enseignant existant, récupérez la clé primaire de l'enseignant en fonction de son nom :

<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 effectue une sous-requête pour sélectionner la valeur 'id_teacher' de l'enseignant en fonction de son nom. La valeur renvoyée est ensuite utilisée comme clé étrangère pour le dossier de l'élève.

Cas 2 : Insertion d'un élève avec un nouvel enseignant

Pour insérer un nouveau dossier d'élève le long avec un nouvel enseignant, vous devrez effectuer deux instructions d'insertion distinctes :

<code class="sql">INSERT INTO TAB_TEACHER(name_teacher) VALUES ('Professor Jane');

INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
SELECT 'Alice The Student', LAST_INSERT_ID();</code>

Dans la première instruction, un nouvel enregistrement d'enseignant est inséré. La fonction 'LAST_INSERT_ID()' est ensuite utilisée dans la deuxième instruction pour récupérer la clé primaire du professeur nouvellement inséré. Cette clé est attribuée comme clé étrangère pour le dossier de l'étudiant.

En suivant ces étapes, vous pouvez vous assurer que les relations de clé étrangère sont maintenues lors de l'insertion de valeurs dans les tables MySQL.

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