在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之后标记了interview_question_template。
执行错误表示'之后该行有错误。 '
答案 0 :(得分:1)
你做得很好。只需将整个事物包装在分隔符块中即可。以下内容幸免于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
答案 1 :(得分:0)
我做的另一件事就是简单地删除BEGIN / END,它也像魅力一样。