gpt4 book ai didi

mysql - MySQL 触发器可以模拟 CHECK 约束吗?

转载 作者:IT王子 更新时间:2023-10-28 23:46:33 26 4
gpt4 key购买 nike

我想在 MySQL 中使用 CHECK 约束,但不支持。 (与其他 RDBMS 不同,它会理解但不会强制执行 CHECK。)

我已经看到了一些使用触发器的解决方法。但他们倾向于为相关字段设置默认值,而不是返回错误。

如果不满足条件,是否可以构造一个返回错误的触发器?

最终我想要一个复制 CHECK 约束的触发器。

最佳答案

更新数据时:

delimiter $$
create trigger chk_stats1 before update on stats
for each row
begin
if new.month>12 then
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot add or update row: only';
end if;
end;
$$

插入数据时:

   delimiter $$
create trigger chk_stats before insert on stats
for each row
begin
if new.month>12 then
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot add or update row: only';
end if;
end;
$$

这些触发器将用作检查约束,在插入或更新之前工作并检查月份,如果月份 >12 给出错误。

关于mysql - MySQL 触发器可以模拟 CHECK 约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734920/

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