开发者社区> 问答> 正文

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

由于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中的检查约束?

展开
收起
保持可爱mmm 2020-05-17 20:08:21 1021 0
1 条回答
写回答
取消 提交回答
  • 尝试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 来源:stack overflow end 编辑

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

    2020-05-17 20:13:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像