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

Mary-Kate Olsen
Lepaskan: 2024-10-30 21:24:30
asal
479 orang telah melayarinya

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>
Salin selepas log masuk

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>
    Salin selepas log masuk
  2. Dapatkan semula ID guru yang baru dimasukkan:

    <code class="sql">SET @new_teacher_id = LAST_INSERT_ID()</code>
    Salin selepas log masuk
  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>
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan