首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入触发器后的MySQL -选择使用不起作用的新值

插入触发器后的MySQL -选择使用不起作用的新值
EN

Stack Overflow用户
提问于 2015-12-02 18:58:03
回答 2查看 1.4K关注 0票数 0

在MySQL中:

  1. 我有一张interview
  2. 创建新的面试(插入interview的一行)时,
  3. 我希望将行添加到子表interview_questions表,该表链接到interview_questions_template中的问题定义。

我试图在interview上的AFTER INSERT触发器中这样做,mysql说我在插入到.的末尾有语法错误。选择语句。

我试着加入新的,认为这可能是一张桌子,但这也不起作用。看密码了吗?

代码语言:javascript
复制
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下划线。

执行错误表示该行在‘’之后有一个错误。

EN

回答 2

Stack Overflow用户

发布于 2015-12-02 19:16:34

你做得很好。只需将整件事情用分隔符块包装即可。下面的代码从1064错误中幸存下来。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-12-02 19:26:45

我所做的另一件事是简单地删除开始/结束,它也像一个魅力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34050793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档