gpt4 book ai didi

mysql:拒绝更新行

转载 作者:可可西里 更新时间:2023-11-01 08:35:37 25 4
gpt4 key购买 nike

我有一个包含 3 个字段的表,其中一个是“状态”。status 是一个 ENUM,可能包含 'a'、'b' 或 'c'。

我需要找到一种方法来拒绝对具有“status”='b'的所有行进行任何更新,甚至不应该允许 root 用户更新这些行。所以这就像使这一行成为“最终”。如果 status = a 或 status = c,则应允许更新。

有什么办法吗?谢谢!

最佳答案

你可以使用这个触发器-

DELIMITER $$

CREATE TRIGGER trigger1
BEFORE UPDATE
ON table1
FOR EACH ROW
BEGIN
IF OLD.status = 'b' THEN
SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Cannot update value';
END IF;
END
$$

DELIMITER ;

如果你知道toot用户的bane,想让他更新,那么你可以使用这个条件——

...
IF CURRENT_USER() <> 'root@localhost' AND OLD.status = 'b' THEN
SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'Cannot update value';
END IF;
...

关于mysql:拒绝更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513084/

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