在MySQL中应用check约束的技巧包括:首先,若要设定CHECK约束的字段值域较小,且能方便地列出所有可能的值,那么可以将该字段的类型指定为enum或set类型。其次,若CHECK约束的字段值域较广,难以一一列举所有可能的值,则可利用触发器来替代约束,确保数据的有效性。

在一些情况下,我们需要字段在指定范围的输入,
性别限定为“男”或“女”,同时,余额需满足大于零的要求,以及其他类似的规定。
例如:可以要求 表的 列只允许输入六位数字的邮政编码。
我们除了对程序进行管控之外,还可以借助CHECK约束来对数据进行规范。
然而:
MySQL的各个存储引擎都不支持check约束功能,尽管MySQL会对check子句进行解析,但在实际插入数据的过程中,它却会忽略这些约束条件,所以check约束实际上并没有发挥其应有的作用。
解决这个问题的两种方式:
若需设定CHECK约束的字段值域较窄,且能够轻松列出所有可能值,那么将此字段的数据类型设定为枚举类型enum()或集合类型set()将是一个不错的选择。
例如,在性别这一字段中,应当如此配置:除了枚举值之外,任何其他值的输入都将受到限制。在 TABLE `` 中,此规定得以体现。
`Sno` char(8) NOT NULL,
`Sname` (10) NOT NULL,
性别枚举(男性,女性)为必填项,其中男性选项为默认值。
`Age`(年龄)字段不得为空,且应填写数字`20`。
`` char(12) NULL,
`Sdept` (20) NOT NULL,
KEY (`Sno`),
KEY `` (``)
) = =utf8;
若字段需设定CHECK约束的范围较广,且完整列出所有可能值存在一定难度,例如涉及整数或特定区间,那么我们便需借助触发器来确保数据的有效性以替代约束。
on for each row
begin
若新对象的年龄为三十岁,则将其年龄设定为二十岁;否则,不做任何修改。
扫一扫在手机端查看
-
Tags : mysql怎么设置检查约束六位
- 上一篇:php array_push 数组 PHP elseif 缩写用法_在PHP中,除了短回显标签
- 下一篇:python ide for linux Linux Python IDE推荐_Liunx系统上怎么安装python的IDE?Linux有哪些pythonIDE可以用
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1