我正在寫一個觸發器來執行交叉表更新,但是我無法得到期望的結果。我正在處理一個參數,那就是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