«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обрабатывать вставку внешнего ключа в запросы MySQL: два распространенных сценария

Как обрабатывать вставку внешнего ключа в запросы MySQL: два распространенных сценария

Опубликовано 8 ноября 2024 г.
Просматривать:475

How to Handle Foreign Key Insertion in MySQL Queries: Two Common Scenarios

Как решить проблему вставки внешнего ключа в запросы MySQL

Чтобы эффективно вставлять значения в таблицы с внешними ключами, давайте рассмотрим два распространенных сценария:

Сценарий 1: добавление ученика к существующему учителю

Чтобы связать нового ученика с уже существующим учителем, получите внешний ключ, используя имя учителя:

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;

Сценарий 2: одновременное создание нового учителя и ученика

При создании как нового ученика, так и несуществующего учителя:

-- Insert a new teacher first
INSERT INTO TAB_TEACHER(name_teacher)
VALUES ('Professor Jade');

-- Retrieve the newly created teacher's ID
SET @teacher_id = LAST_INSERT_ID();

-- Insert the new student with the foreign key pointing to the new teacher
INSERT INTO TAB_STUDENT(name_student, id_teacher_fk)
VALUES ('Mia The Student', @teacher_id);

В этом сценарии функция LAST_INSERT_ID() используется для захвата идентификатора вновь вставленного учителя для немедленного использования в качестве внешнего ключа для ученика.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3