MySQL触发器:更新子行后删除子行
问题描述:
我需要更新父表的值,当一个子行被删除。MySQL触发器:更新子行后删除子行
父表:(答案)
- id_answer
- 答案
- 票(包含总票数的)
儿童表:(个answers_votes)
- id_vote
- id_answer
- id_user
- date_insert
- IP
每次子行被删除的票父值表格必须减少1.
这是我当前创建触发器的句子,但UPDATE行有些错误,或许是votes-1?任何帮助将不胜感激。谢谢!
CREATE TRIGGER update_votes BEFORE DELETE on answers_votes
FOR EACH ROW
BEGIN
UPDATE answers SET answers.votes = (answers.votes-1) WHERE answers.id_answer = OLD.id_answer;
END
任何想法?谢谢!
答
所以,我怀疑;
是这里的问题。我添加了$$
作为DELIMITER
,以便mysql客户端不会误解;
。
修改后的触发将是:
DELIMITER $$
CREATE TRIGGER update_votes
BEFORE DELETE ON answers_votes
FOR EACH ROW
BEGIN
UPDATE answers SET answers.votes = (answers.votes -1) WHERE answers.id_answer = OLD.id_answer;
END$$
DELIMITER ;
注意,这是不DELIMITER ;
DELIMITER;
希望这有助于!
你可以试试吗? 'DELIMITER $$ CREATE TRIGGER update_votes BEFORE DELETE ON answers_votes FOR EACH ROW BEGIN UPDATE SET答案= answers.votes(answers.votes -1)WHERE answers.id_answer = OLD.id_answer; END $$ DELIMITER;' – harshavmb
此外,不存在分隔符,它终止于'update'行,因此我添加了'$$'作为分隔符。 – harshavmb
@harshavmb工作!如果你发布你的解决方案,我可以选择它作为接受的答案。谢谢! – andufo