gpt4 book ai didi

mysql - 检查两个表中的多个值是否相等然后更新表的触发器

转载 作者:行者123 更新时间:2023-11-29 15:42:34 25 4
gpt4 key购买 nike

我遇到了一种情况,我正在尝试创建一个触发器,一旦我手动更新 table1 中有关游戏编号的特定行,我希望它能够比较/评估 table1 中已更新的更改(liveResult) 朝向 table2(prediction) 中的现有值,然后如果这些值正确,则需要将 table2(predictionCorrect) 中有关该游戏编号的所有行更新为值“1”,否则值“0”。

我不是 MySQL 专家,我不断收到以下错误,我无法确定问题是什么,当然这可能很简单,但不幸的是我无法发现它......

我尝试了一些网站来展示如何执行类似的操作,但此时我不断收到以下错误:

“1064 - 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解第 9 行 '' 附近使用的正确语法”

不幸的是,我不是 MySQL 专家,以前从未创建过触发器,所以我希望这应该是简单的事情......

CREATE TRIGGER trg_update_tableCorrect
AFTER UPDATE ON table1
FOR EACH ROW BEGIN
IF (liveResult = (Select prediction from table2 where gameNr = '5'))
THEN
UPDATE table2
SET predictionCorrect = '1'
where gameNr = '5';
ELSE
UPDATE table2
SET predictionCorrect = '0'
where gameNr = '5';
END IF;
END;

我想要做的事情就像下面的例子:

Table 1:
gameNr | liveResult
5 | 10

Table 2:
gameNr | prediction | predictionCorrect
5 | 10 | 1 // Prediction correct!
5 | 15 | 0 // Prediction wrong!
5 | 10 | 1 // Prediction correct!

如有任何帮助,我们将不胜感激!

最佳答案

感谢@James 的指导。它不更新的原因似乎是因为虽然我引用了表 1,但在 IF 语句中使用 liveResult 似乎无法被识别,因此我在其中添加了另一个选择,如下所示:

IF ((Select prediction from table1 where gameNr = '5') = (Select liveResult from table2 where gameNr = '5'))

知道这并不理想,但这似乎已经达到了目的,至少表格现在正在相应更新。仍将研究旧方法。

谢谢。

关于mysql - 检查两个表中的多个值是否相等然后更新表的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57450185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com