我正在写一个触发器来执行交叉表更新,但是我无法得到期望的结果。我正在处理一个参数,那就是messageId。使用messageId,我需要进入消息表并找到userId @messageId,然后更新他/她的分数:(@messageId从插入到第三个表中,所以它真的是NEW.messageId)MySQL中的交叉表更新
UPDATE users
SET users.score = users.score + 1
WHERE users.id = messages.userId
我需要从消息中选择messages.userId @messageId,但触发器不会让我做select语句,所以我有点卡住了!
我想这一点,这似乎并没有工作,要么:
UPDATE users, messages
INNER JOIN messages ON messages.id = NEW.messageId
SET users.score = users.score + 1
WHERE users.id = messages.userId
PS:我真的不希望选择任何内容,我只想引用它虽然消息表更新用户表,然后被引用NEW.messageId
哪个表是触发器? – VoodooChild 2010-12-15 21:34:00
第三张桌子,VoodooChild! – Mohamad 2010-12-15 21:42:21
这样做没有INNER JOIN行吗?此场景中的逗号用作联接。 – csi 2010-12-15 21:56:43