提问人:Centaro 提问时间:4/20/2023 最后编辑:Centaro 更新时间:4/24/2023 访问量:126
带有 IF-statement 的 MariaDB 触发器不起作用,并且不会返回任何错误
MariaDB trigger with IF-statement doesn't work and returns no errors
问:
我在 MariaBD 10.11.2 中编写了一个相当简单的触发器,但它不会产生任何输出,甚至没有错误。
CREATE TRIGGER Automatic_Employee
BEFORE INSERT
ON Test_Results
FOR EACH ROW
BEGIN
IF (CURRENT_USER() = 'FOO') THEN
SET NEW.Employee_ID = 0;
END IF;
END
这是有问题的代码。我对此表有类似的触发器,其中部分结果是自动输入的。我以 FOO 身份登录,输入输入后字段保持 [NULL] 而不是 0。其他一切正常。
有什么想法吗?提前致谢。
答:
1赞
slaakso
4/21/2023
#1
你的代码应该给你一个关于未知的错误。Employee_ID
若要设置插入行中列的值,请使用 表示法 。new.column
您的代码应如下所示:
CREATE TRIGGER Automatic_Employee
BEFORE INSERT
ON Test_Results
FOR EACH ROW
BEGIN
IF (USER() = 'FOO@localhost') THEN
SET new.Employee_ID = 0;
END IF;
END
该函数在存储的例程和触发器中返回 CREATOR。该函数返回运行查询的用户的用户名和主机名。CURRENT_USER()
USER()
评论
0赞
Centaro
7/18/2023
我又看了一遍,你是完全正确的。谢谢你,先生!=)
下一个:根据条件更改行
评论