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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 16:20:02470parcourir

How do you insert values with foreign keys in MySQL?

Insertion de valeurs avec des clés étrangères dans MySQL

Lorsque vous travaillez avec des bases de données relationnelles, il est souvent nécessaire d'insérer des valeurs dans des tables avec des clés étrangères. Voici comment gérer deux cas précis :

CAS 1 : Insérer un élève auprès d'un professeur existant

Dans ce cas, vous connaissez le nom du professeur et devez récupérer leur identifiant dans la table TAB_TEACHER. La requête suivante utilise une sous-requête pour obtenir la valeur de la clé étrangère :

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

CAS 2 : Insérer un élève avec un nouvel enseignant

Pour ce cas, vous avez besoin pour insérer à la fois le nouvel enseignant et le nouvel élève. Cela nécessite deux instructions INSERT distinctes :

<code class="sql">-- Insert the new teacher
INSERT INTO TAB_TEACHER(name_teacher)
VALUES ('John Smith')

-- Get the new teacher's ID
SET @id_teacher_fk = LAST_INSERT_ID()

-- Insert the new student with the foreign key value
INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
VALUES ('Jane Doe', @id_teacher_fk)</code>

Veuillez noter que la syntaxe spécifique peut varier en fonction de votre version de MySQL. Pour plus de détails, reportez-vous à la documentation officielle.

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