在做项目时,遇到这样一个需求,就是库存数量不允许小于0,虽然前端和后端都做了校验,但为了保险起见,数据库也必须加上这样的限制。由于MySQL不支持Check约束,所以,只能使用触发器。
我是通过Navicat界面来设定的,操作如下:
if NEW.num < 0 then
SIGNAL SQLSTATE 'HY000' SET mysql_errno = 10000, message_text = '库存数量不能小于0';
end if
触发器的名称可以随意,但要尽量有意义;HY000是MySQL的状态码,在这里用来表示数据完整性出现问题。
最终效果:
技术不分高低,学习路上应多多共享,欢迎评论或转载。
我是来自 信华信-未来出行业务部的卢泽