MySQL - check使用

本文探讨了MySQL中不支持CHECK约束的问题,并介绍了两种替代方案:使用枚举和触发器来实现数据验证。同时指出了这两种方法在实际应用中的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用MySQL时,不经意用到了check来约束,结果发件加不加check没区别,所以就查找了下资料,发现MySQL目前不被支持,这么说MySQL的路还有很长啊。

但是如果想要用到的话,网上提供了两种方法:
1.使用枚举,不过博主在试了下,要实现限制范围,就必须把这个范围内的所有数写进枚举,实际开发中,这无疑是不可取的,范围小的时候可考虑;

create table test5(test1Id int,testname varchar(50),testpass varchar(50),sal enum(1,2,3,4,5));

2.使用触发器,每一个表中,触发器有且只能有一个

 CREATE TRIGGER testref AFTER INSERT ON test6
  FOR EACH ROW BEGIN
    if NEW.test1Id>100  then
       delete from test6 where test1Id=NEW.test1Id;
    end if ;

这里要说明的是,一般我们可以在插入数据之前做判断,不需要写在数据库中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值