gpt4 book ai didi

mysql - 使用触发器停止插入或更新

转载 作者:行者123 更新时间:2023-11-29 19:50:14 36 4
gpt4 key购买 nike

由于 MySQL 忽略检查约束,因此如何使用触发器来阻止插入或更新的发生?

例如:

表foo有一个名为agency的属性,并且agency属性只能是1、2、3、4或5。

delimiter $$
create trigger agency_check
before insert on foo
for each row
begin
if (new.agency < 1 or new.agency > 5) then

#Do nothing?

end if;
end
$$
delimiter ;

或者有更好的方法在 MySQL 中进行检查约束吗?

最佳答案

尝试 SIGNAL 语法 - https://dev.mysql.com/doc/refman/5.5/en/signal.html

create trigger agency_check
before insert on foo
for each row
begin
if (new.agency < 1 or new.agency >5) then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'your error message';
end if
end

编辑

根据 Bill Karwin 下面的热门评论进行更新。

关于mysql - 使用触发器停止插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40836326/

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