在数据库中,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('秀吉','秀吉');

结果:

错误代码: 1265

Data 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 ;

本文地址:http://itbyc.com/mysql/19605.html

转载请注明出处。

mysql check约束 date_MySQL怎么使用check约束相关推荐

  1. mysql check约束无效_mysql数据库 check约束无效

    mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0)); Query OK, 0 rows af ...

  2. MySQL 8.0 新特性之检查约束(CHECK)

    文章目录 MySQL 8.0.15 之前 MySQL 8.0.16 之后 列级检查约束 表级检查约束 强制选项 检查约束限制 总结 大家好,我是只谈技术不剪发的 Tony 老师.这次我们来介绍一个 M ...

  3. mysql的check约束怎么设置_MySQL检查约束(CHECK)

    MySQL 检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现.设置检查约束时要根据实际情况进行设置,这样能够减少 ...

  4. oracle建表时check约束用法,Oracle之Check约束实例具体解释

    Oracle | PL/SQL Check约束使用方法具体解释 1. 目标 实例解说在Oracle中怎样使用CHECK约束(创建.启用.禁用和删除) 2. 什么是Check约束? CHECK约束指在表 ...

  5. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)

    注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c   别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...

  6. MySQL中字段约束有哪些_mysql字段约束

    为了确保数据的完整性和唯⼀性,关系型数 据库通过约束机制来实现目. 一. unique 唯一性约束 值不可重复: 二. not null 非空约束 值不可为空: 三. default  默认值约束 当 ...

  7. MySQL(三)数据库的六种约束、表的关系、三大范式

    文章目录 数据库约束 NOT NULL(非空约束) UNIQUE(唯一约束) DEFAULT(缺省约束) PRIMARY KEY(主键约束) AUTO_INCREMENT 自增 FOREIGN KEY ...

  8. mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰

    一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER ...

  9. mysql在学号列创建主码约束_MySQL 数据完整性

    数据库实验回顾实体完整性 实体完整性即主码的属性不能为空.而主码就可保证元组是不重复的,即主码值是不能重复的. 参照完整性 参照完整性保证外码的值要么是被参照关系中的主码值,要么取空值. 用户自定义完 ...

最新文章

  1. 修改密码后服务器断开连接,SSH无需密码登录服务器且保持连接不断开的方法
  2. 嵌入式VxWorks系统开发与应用
  3. 为Windows mobile编写设计友好的控件[Writing designer friendly controls for Windows Mobile]
  4. 实验三 循环结构设计
  5. python打不开怎么办-python为什么打不开
  6. setTimeout(0) 即将退役
  7. 人人皆可大数据!SACC教你玩转阿里ODPS
  8. 【kernel 中内存分配那点事】
  9. 【机器学习基础】GBDT 与 LR 的区别总结
  10. 使用深度学习TensorFlow框架进行图片识别
  11. 字符串太占内存了,我想了各种奇思淫巧对它进行压缩
  12. 1.搭建JavaEE开发环境
  13. 【MyBatis】第一章 快速入门
  14. java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?
  15. 静态函数 静态变量和常量
  16. 一句话设置UITextField、UITextview的字数限制和placeholder
  17. 简单.bat 代码蓝屏
  18. 计算机死机按什么恢复出厂设置,电脑怎么恢复出厂设置?win7恢复出厂设置教程...
  19. 明翰英语教学系列之形容词与副词篇V0.1(持续更新)
  20. Python通讯录案例

热门文章

  1. Shape Reshape
  2. 小米家投影仪2和极米z6x 哪个好
  3. git 在 commit 提交之后怎么撤回本地提交
  4. 如何设计USB TYPE-C接口的便携显示器和电视机,形态二讲述:Type-c桌面台式显示器
  5. ORACLE通过两个日期计算出刚出生小孩年龄,几月几天表示
  6. 听不进真话,是穷人最大的困境
  7. unit.framework.AssertionFailedError: No tests found in X.X
  8. 搞一个远程服务器,环境一步步的搭建之一 远程桌面登录
  9. 微型计算机DMA传送实验
  10. 物联网平台开发核心技术实战-初识