MySQL使用check约束的方法
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关MySQL使用check约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在数据库中,CHECK 约束是指约束表中某一个或者某些列
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
需要付费连接服务器的聊天软件
网络安全事件应急机制范文
网信办网络安全应急中心
惠州软件开发工程师招
计算机与网络安全专业好不好
工信部 网络安全产业规模
计算机网络技术中高职一体化
服务器机房温湿度管理系统
珠海格力软件开发怎么样
学基础数学的软件开发
不自动建数据库
服务器未能启动是什么原因
大一数据库
辽宁软件开发服务应用
网络技术管理与应用
通用服务器占比
网络安全春考
数据库工程师证书A类还是F类
我的世界 服务器 搭建
数据库附加661出错
数字签名网络安全
久忆联盟网络技术公司
网络安全公司360
网络技术如何划分子网
数据库对微信的认识
服务器共享硬盘.
群晖搭建合同管理服务器
服务器远程登陆密码
上海好麦网络技术有限公司
5g网络安全降本增效