gpt4 book ai didi

MySQL 触发器不起作用

转载 作者:行者123 更新时间:2023-11-29 01:04:13 24 4
gpt4 key购买 nike

我的触发器有点问题。我创建了一个触发器:

BEGIN 

IF((SELECT `Wert`
FROM parameter_history
WHERE `BusNr` = NEW.BusNr AND `MesswertNr` = NEW.MesswertNr
ORDER BY `Timestamp` DESC LIMIT 1) != NEW.Value)


THEN
INSERT INTO parameter_history (`BusNr`, `MesswertNr`, `Value`)
VALUES (NEW.BusNr, NEW.MesswertNr, NEW.Value);
END IF;

END

触发器的事件是在更新之后。如果已经有一个 New.Value,它会很好用。但如果我的数据库中没有 New.Value,它就不起作用,我也不知道为什么。问题是,当我的表中实际上没有条目时,我无法从“NEW.Value”中取回值。使用 MySQL 程序时,我得到“找到 0 行”,我想解决这个问题。

有人能帮帮我吗?

亲切的问候

最佳答案

当然,如果已经有一个 NEW.value 就可以了,看看你的声明,

    IF((select x) != NEW.Value)  // select x only when it does not equal 
//what the current value of New.Value is.

THEN // preform my insert statement.
INSERT INTO parameter_history (`BusNr`, `MesswertNr`, `Value`)
VALUES (NEW.BusNr, NEW.MesswertNr, NEW.Value);

END IF;

现在考虑New.Value不存在或者为空(null)的情况,你在运行,只在不等于时选择x ???? .

您将返回 0 行。

我不太确定你在构建什么,但为什么不为 New.Value 使用默认值,然后在需要时运行一个过程来更新它,然后你的触发器将在非空字段上更新后执行?

关于MySQL 触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363888/

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