Rumah >pangkalan data >tutorial mysql >Cara Memasukkan Nilai dengan Kekunci Asing dalam Jadual MySQL: Kekunci Sedia Ada vs. Baharu?

Cara Memasukkan Nilai dengan Kekunci Asing dalam Jadual MySQL: Kekunci Sedia Ada vs. Baharu?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 21:24:30490semak imbas

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

Memasukkan Nilai dengan Kunci Asing dalam Jadual MySQL

Dalam pengurusan pangkalan data, adalah perkara biasa untuk mencipta jadual dengan kekangan kunci asing untuk mewujudkan hubungan antara mereka . Soalan ini meneroka cara untuk memasukkan nilai ke dalam jadual dengan kunci asing, mengambil kira dua senario.

Senario 1: Memasukkan dengan Nilai Kunci Asing Sedia Ada

Untuk memasukkan rekod pelajar dengan rekod guru sedia ada dan dapatkan kunci asing melalui nama guru, gunakan pertanyaan berikut:

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

Pertanyaan ini memastikan rekod pelajar yang dimasukkan dipautkan kepada guru yang betul berdasarkan nama yang diberikan.

Senario 2: Memasukkan dengan Nilai Kunci Asing Baharu

Untuk memasukkan kedua-dua pelajar baharu dan guru baharu secara serentak, prosedur berikut hendaklah dipatuhi:

  1. Masukkan rekod guru:

    <code class="sql">INSERT INTO TAB_TEACHER(name_teacher)
    VALUES ('Professor Jane')</code>
  2. Dapatkan semula ID guru yang baru dimasukkan:

    <code class="sql">SET @new_teacher_id = LAST_INSERT_ID()</code>
  3. Sisipkan rekod pelajar dengan kunci asing ditetapkan kepada ID guru baharu:

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

Dengan melaksanakan langkah-langkah ini, rekod pelajar baharu yang dipautkan kepada rekod guru yang baru dibuat akan dimasukkan ke dalam pangkalan data.

Atas ialah kandungan terperinci Cara Memasukkan Nilai dengan Kekunci Asing dalam Jadual MySQL: Kekunci Sedia Ada vs. Baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn