У меня есть 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

Таблицы ->

Таблица вакансий : jobsTable

Таблица пользователей : usersTable

0
Adam Mc Menamin 14 Окт 2018 в 20:51

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 ;
1
Madhur Bhaiya 14 Окт 2018 в 18:38