MySQL使用check约束的方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关MySQL使用check约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在数据库中,CHECK 约束是指约束表中某一个或者某些列
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
有格互联网科技
互联网科技公司排名
科技平台互联网
科技类互联网
互联网科技革命
广州宏创互联网科技
亿策互联网科技
互联网科技公司有哪些
互联网科技美容
互联网科技股有哪些
金融科技和互联网金融
镁科技互联网资讯平台
互联网教育科技公司vipkid
河南猎农互联网科技有限公司
江阴互联网智能科技产品进口
消费医药和互联网科技
科技赋能视角下互联网保险发展
江苏互联网科技小贷
新氧科技和美国互联网有关系吗
普陀区互联网教育科技管理办法
互联网科技行业发展
中资互联网科技
凡科互联网科技
互联网科技论文
苏州五指互联网络科技有限
乌苏新华互联网科技做什么的
皮皮虾互联网科技有限公司
中天科技中国工业互联网
本届互联网大会上的黑科技
互联网金融金融科技