在MySQL中:
我有一个interview
表,并且
创建新的采访(在interview
中插入一行)后,
我想向子表interview_questions
表中添加行,这些表链接到interview_questions_template
中的问题定义。
我正在尝试在interview
上的AFTER INSERT触发器中执行此操作,并且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之后强调了visitor_question_template。
执行错误表示''之后的那一行有错误。
最佳答案
你还好只需将整个内容包装在定界符块中即可。以下内容可以解决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 ;
至于分隔符的重要性,请参见我的This Post的底部。我在其他地方更雄辩地写了它,只是找不到参考。而mysql手册对普通人来说几乎没有任何冗长的细节。
很抱歉发布明显的内容。有时人们只需要看一下:P