MySQL使用check约束的方法
发表于:2024-10-06 作者:千家信息网编辑
千家信息网最后更新 2024年10月06日,这篇文章将为大家详细讲解有关MySQL使用check约束的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在数据库中,CHECK 约束是指约束表中某一个或者某些列
千家信息网最后更新 2024年10月06日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安全错误
数据库的锁怎样保障安全
sql链接两个数据库
网络安全舆情监测系统
中央网络安全和信息化
软件开发策划书团队分工
软件开发的试题
uu加速器连接服务器失败
hpe服务器四个灯全闪烁
ios软件开发是什么
我的世界坑服务器的玩家
石景山网络安全认证
网络技术的应用开始时间
支付宝网络技术公司是什么
三级数据库是靠题库吗
深圳保游网络技术有限公司
编译原理 数据库原理
pda软件开发用什么编程
怎样修改数据库编码
网络安全管理的基本方面
宁波软件开发的费用
全市网络安全专项检查填报系统
小孩想学游戏软件开发
蓝田互联网科技
网络安全的脆弱性
方舟生存进化进服务器英文
办公软件开发内容
软件开发工作室帮忙管理账号兼职
软件开发的主要困难
网络安全宣讲与市民亲密接触
软件开发 套
光遇网络服务器失败