У меня есть 2 таблицы, называемые пользователями и вакансиями. Я сделал третью таблицу, которая представляет собой внутреннее объединение пользователей и вакансий под названием jobPosts. Мой вопрос связан с тем, когда я вставляю значения в таблицу вакансий, которые она также вставляет в новую таблицу jobPosts. Вот мой прикрепленный SQL, но он не работает для меня.
CREATE DEFINER=`root`@`localhost` TRIGGER trg_jobs_after_insert
AFTER INSERT ON jobs
FOR EACH ROW
BEGIN
INSERT INTO jobPost (userID, name, email, phoneNo, location, jobID,
title, level, dateFrom, dateTo, description)
SELECT
users.name
, users.email
, users.phoneNo
, users.location
, NEW.jobID
, NEW.title
, NEW.level
, NEW.dateFrom
, NEW.dateTo
, NEW.description
FROM users
WHERE users.userID= NEW.user.userID;
END
Таблицы ->
Таблица вакансий :
Таблица пользователей :
1 ответ
Ваше условие where должно быть на email
вместо userID
. Кроме того, в выборе для вставки отсутствует userId
.
DELIMITER //
CREATE DEFINER=`root`@`localhost` TRIGGER trg_jobs_after_insert
AFTER INSERT ON jobs
FOR EACH ROW
BEGIN
INSERT INTO jobPost (userID, name, email, phoneNo, location, jobID,
title, level, dateFrom, dateTo, description)
SELECT
users.userID
, users.name
, users.email
, users.phoneNo
, users.location
, NEW.jobID
, NEW.title
, NEW.level
, NEW.dateFrom
, NEW.dateTo
, NEW.description
FROM users
WHERE users.email = NEW.email;
END //
DELIMITER ;
Похожие вопросы
Связанные вопросы
Новые вопросы
mysql
MySQL - это бесплатная система управления реляционными базами данных с открытым исходным кодом (RDBMS), использующая язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. Д. Это разные БД, которые все используют свои собственные диалекты SQL для управления данными.