简体   繁体   English

MySQL触发器:INSERT表1,UPDATE表2

[英]MySQL Trigger: INSERT table1, UPDATE table2

I'm wanting to set a trigger as so: 我想这样设置一个触发器:

TRIGGER `increment_topic_replies_on_insert`
BEFORE INSERT ON  `forum replies` FOR EACH ROW

INSERT INTO `users votes`
SET userid = NEW.userid
    replyid = NEW.replyid,
    forumtopicid = NEW.forumtopicid;

UPDATE `forum topics` ft
SET replies = replies +1
WHERE NEW.forumtopicid = ft.id;

So after it INSERTS into users votes , it'll update a row in forum topics . 因此,在插入users votes ,它将在forum topics更新一行。 Should I be using two separate triggers to achieve this? 我是否应该使用两个单独的触发器来实现这一目标?

My current trigger keeps throwing the error "You have an error in your SQL syntax". 我当前的触发器不断抛出错误“您的SQL语法有错误”。

Your INSERT & UPDATE statement syntax is wrong, try this one 您的INSERT&UPDATE语句语法不正确,请尝试此一种

CREATE TRIGGER `increment_topic_replies_on_insert` BEFORE INSERT ON `forum replies`
  FOR EACH ROW
  BEGIN
    INSERT INTO `users votes` (userid,replyid,forumtopicid)
    VALUES (NEW.userid, NEW.replyid, NEW.forumtopicid);

    UPDATE `forum topics` ft
      SET ft.replies = replies + 1
    WHERE ft.id = NEW.forumtopicid;
  END;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM