MySQL AFTER INSERT Trigger - выберите INTO, используя НОВЫЕ значения, не работающие

В MySQL:

  1. У меня есть таблица interview, и
  2. когда создается новое интервью (строка вставляется в interview),
  3. Я хочу добавить строки в дочернюю таблицу interview_questions, ссылающуюся на определения вопросов в interview_questions_template.

Я пытаюсь сделать это в триггере AFTER INSERT на interview, и mysql говорит, что у меня есть синтаксическая ошибка в конце моего оператора INSERT INTO... SELECT.

Я пытался присоединиться к NEW, думая, что это может быть стол, но это тоже не сработало. Глянуть на код?

CREATE TRIGGER interview_AFTER_INSERT AFTER INSERT ON interview 
FOR EACH ROW
BEGIN
  INSERT INTO interview_questions (id_interview, id_candidate, id_question_def,  s_userid)
    SELECT NEW.id_interview, NEW.id_candidate, interview_question_template.id_question_def, NEW.s_userid 
        FROM interview_question_template;

END

Ошибка, которую показывает mysqlworkbench, - это «отсутствует точка с запятой», подчеркивая интервью_вопрос_шаблон после FROM.

Ошибка выполнения говорит о том, что в этой строке после ' ' есть ошибка.


person Pól    schedule 02.12.2015    source источник


Ответы (2)


У тебя все хорошо. Просто оберните все это в блок-разделитель. Ниже показана ошибка 1064.

DELIMITER $$
CREATE TRIGGER interview_AFTER_INSERT AFTER INSERT ON interview 
FOR EACH ROW
BEGIN
  INSERT INTO interview_questions (id_interview, id_candidate, id_question_def,  s_userid)
    SELECT NEW.id_interview, NEW.id_candidate, interview_question_template.id_question_def, NEW.s_userid 
        FROM interview_question_template;

END
$$
DELIMITER ;

Что касается важности разделителей, см. нижнюю часть моего этот пост. Я написал это более красноречиво в другом месте, просто не могу найти ссылку на него. И в руководстве по mysql мало об этом с какой-либо многословностью для среднего человека.

Прошу прощения, что написал очевидное. Иногда людям просто нужно это увидеть :P

person Drew    schedule 02.12.2015
comment
Это сделало это! Спасибо! - person Pól; 02.12.2015

Другая вещь, которую я сделал, это просто удалить НАЧАЛО/КОНЕЦ, и это также сработало как шарм.

person Pól    schedule 02.12.2015