„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie fügt man Werte mit Fremdschlüsseln in MySQL ein?

Wie fügt man Werte mit Fremdschlüsseln in MySQL ein?

Veröffentlicht am 08.11.2024
Durchsuche:911

How do you insert values with foreign keys in MySQL?

Werte mit Fremdschlüsseln in MySQL einfügen

Bei der Arbeit mit relationalen Datenbanken ist es oft notwendig, Werte mit Fremdschlüsseln in Tabellen einzufügen. So gehen Sie mit zwei spezifischen Fällen um:

FALL 1: Einfügen eines Schülers mit einem vorhandenen Lehrer

In diesem Fall kennen Sie den Namen des Lehrers und müssen ihn kennen Rufen Sie ihre ID aus der Tabelle TAB_TEACHER ab. Die folgende Abfrage verwendet eine Unterabfrage, um den Fremdschlüsselwert abzurufen:

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

FALL 2: Einfügen eines Schülers mit einem neuen Lehrer

In diesem Fall müssen Sie sowohl den neuen Lehrer als auch den neuen Schüler einfügen. Dies erfordert zwei separate INSERT-Anweisungen:

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

Bitte beachten Sie, dass die spezifische Syntax je nach Ihrer MySQL-Version variieren kann. Einzelheiten finden Sie in der offiziellen Dokumentation.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3