带子查询的MySql更新触发器(#1093错误)

时间:2016-07-04 19:16:54

标签: php mysql triggers

晚上好!

我有一个触发器来更新我的表中的记录'评论'命名投票。当我更新名为' vote'的值时,将触发触发器。在我的投票'表。对于触发器查询,我需要总结所有'投票'表中的记录'投票'然后更新评论'带有' comment.id = vote.pid'的行而' vote.uid = user.id'。

触发功能:

DROP TRIGGER IF EXISTS `CommentVoteOnUpdate`;CREATE DEFINER=`root`@`localhost` TRIGGER `CommentVoteOnUpdate` AFTER UPDATE ON `vote` FOR EACH ROW UPDATE comment
SET comment.vote = (
    SELECT SUM(vote.vote) 
    FROM vote, comment, user
    WHERE comment.id = pid AND uid = user.id
)
WHERE comment.id = new.pid

当我想更新'投票'表,然后我收到以下错误消息:

"表'评论'被指定两次,两者都作为'更新'的目标。并作为数据的单独来源"

你们有没有人为我的问题找到解决方案?

1 个答案:

答案 0 :(得分:0)

您需要为注释表(在子查询中)提供别名。有关详细信息,请参阅this question