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
Libérer: 2024-10-29 16:20:02
original
428 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal