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 ?
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 :
Insérer la fiche de l'enseignant :
<code class="sql">INSERT INTO TAB_TEACHER(name_teacher) VALUES ('Professor Jane')</code>
Récupérer l'identifiant de l'enseignant nouvellement inséré :
<code class="sql">SET @new_teacher_id = LAST_INSERT_ID()</code>
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!