MYSQL Триггеры с внутренним объединением - PullRequest
0 голосов
/ 14 октября 2018

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

1 Ответ

0 голосов
/ 14 октября 2018

Ваше условие должно быть на 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 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...