Вставка значений с внешними ключами в MySQL
При работе с реляционными базами данных часто необходимо вставлять значения в таблицы с внешними ключами. Вот как обработать два конкретных случая:
СЛУЧАЙ 1: добавление ученика к существующему учителю
В этом случае вы знаете имя учителя и вам нужно получить их идентификатор из таблицы TAB_TEACHER. Следующий запрос использует подзапрос для получения значения внешнего ключа:
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:
-- 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)
Обратите внимание, что конкретный синтаксис может различаться в зависимости от вашей версии MySQL. Подробности смотрите в официальной документации.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3