MySQL使用check约束的方法
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章将为大家详细讲解有关MySQL使用check约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在数据库中,CHECK 约束是指约束表中某一个或者某些列
千家信息网最后更新 2025年01月22日MySQL使用check约束的方法
这篇文章将为大家详细讲解有关MySQL使用check约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式(用于限制列中的值的范围)。
在一些情况下,我们需要字段在指定范围的输入,
例如:性别只能输入 '男'或者'女',余额只能大于0等条件,
例如:可以要求 authors 表的 postcode 列只允许输入六位数字的邮政编码。
我们除了在程序上控制以外,我们还能使用 CHECK 约束 来规范数据。
然而:
mysql所有的存储引擎均不支持check约束,MySQL会对check子句进行分析,但是在插入数据时会忽略,因此check并不起作用,因此实现对数据约束有两种方法:
1.在mysql种约束,如使用enum类型或者触发器等。
2.在应用程序里面对数据进行检查再插入。
使用 ENUM 限制插入的值,但是这种方式只能用于离散型数据,对于范围数据则无能为力
-- 创建一张测试表,规定sex字段只能是 '男' 或者 '女'CREATE TABLE `user` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(18) COLLATE utf8_estonian_ci NOT NULL, `sex` ENUM('男','女') COLLATE utf8_estonian_ci DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci测试:INSERT INTO `user`(`name`,`sex`) VALUES('秀吉','秀吉');结果:错误代码: 1265Data truncated for column 'sex' at row 1
如果我们需要限制范围内数据,例如:余额只能大于100这样的条件,我们可以使用触发器来实现。
DELIMITER $$CREATE TRIGGER `test`.`remaining_BeforeInsert` BEFORE INSERT ON `test`.`user` FOR EACH ROW BEGIN IF `user`.`remaining` < 100 THEN SET `user`.`remaining` = 100; END IF; END$$DELIMITER ;
关于MySQL使用check约束的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
范围
方法
输入
限制
余额
字段
更多
条件
程序
篇文章
触发器
秀吉
测试
不错
实用
无能
无能为力
代码
作用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
超微低功耗服务器主板
阿里巴巴网络安全 王芳
嘉兴最新招工信息软件开发6
软件开发算不算高新产品
重庆信安网络安全测评有限公司
我的世界服务器区块强制加载
python软件开发难吗
东营量化积分管理软件开发公司
天搜科技创新互联网
松江区网络技术咨询服务介绍
电商小程序软件开发哪家好
数据库多媒体及安全
计算机网络技术专业考研科目
数据库查询要递归如何优化
软件开发商收取流量提成
数据库管理考什么证
计算机网络技术需要哪些能力
MSN下载软件开发
梦幻西游手游服务器最多几人
山西潮流软件开发服务价格优惠
数据库老师讲课太快了
郑州互联网软件开发如何收费
互联网教父金融科技
mysql数据库查询输出
苹果邮箱收件服务器 163
39岁网络技术员入职
马鞍山服务器机箱机柜厂
电商小程序软件开发哪家好
冰峰网络安全绘画
tg网络安全邮件