MySQL中check的用法

在性别用check会出现一个问题,就是如果插入的数据不是男,也不是女的话,它会默认的插入NULL,这是为什么,怎么才能使用check

现在要说的是在列这一层次过滤的基于表定义之前就规范好的 CHECK 约束。(MySQL 版本 >= 8.0.16)

    mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));

    Query OK, 0 rows affected (0.03 sec)

    mysql> create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);

    Query OK, 0 rows affected (0.02 sec)

    这里 CHECK 约束的相关限制如下:

    1. constraint 名字在每个数据库中唯一。

    也就是说单个数据库里不存在相同的两个 constraint,如果不定义,系统自动生成一个唯一的约束名字。

    2. check 约束针对语句 insert/update/replace/load data/load xml 生效;针对对应的 ignore 语句失效。

    3. 并非每个函数都可以使用,比如函数结果不确定的:NOW(),CONNECTION_ID(),CURRENT_USER()。

    4. 不适用于存储过程和存储函数。

    5. 系统变量不适用。

    6. 子查询不适用。

    7. 外键动作(比如 ON UPDATE, ON DELETE) 不适用。

    8. enforced 默认启用,如果单独加上 not enforced ,check 约束失效。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-04
这样用check约束不好,不如直接修改字段的属性。

修改该字段为非空且默认值为“男”或“女”。
not null default="男"
这样可以达到同样的效果吧。
第2个回答  2013-06-04
不用写语句,直接双击CHECK控件,指定两个值即可.即FALSE时为空格,TRUE时为"V"即可.

怎样使用Mysqlcheck来检查和修复,优化表
如果应用中提示某个表坏了,使用下面的命令来检查。1 2 3 mysqlcheck -c newmandela order -uroot -pEnter password:newmandela.order OK newmandela 是库名, order是表名,还需要输入用户名和密码 检查一个库中的所有表 1 2 3 4 5 6 7 8 mysqlcheck -c newmandela -uroot -p Enter passw...

MySQL中的Check约束使用指南check约束MySQL
在MySQL中,Check约束是用于限制特定列的取值范围的一种约束。Check约束可以定义为一个布尔表达式,该表达式必须返回true才能插入或更新数据。Check约束可用于表约束和列约束。下面是一些Check约束的示例。表约束:CREATE TABLE employees (id INT, name VARCHAR(30), age INT, salary DECIMAL(10,2), CONS...

【数据库】CHECK是什么
CHECK约束在MySQL中用于确保数据表中某列或多列数据符合特定条件。它通过定义布尔表达式实现,表达式必须为真,否则插入或更新操作将失败。常见应用场景包括限制列值、确保日期有效性、定义复杂条件等。在创建或修改表时,可添加CHECK约束。创建表时示例:一个employees表包含两个约束,确保工龄不小于0,员工年...

mysql中什么是CHECK约束啊?
在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。CHECK约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。当除去某个表时,对这个表的CHECK 约束也将同时被去除。

mysqlcheck命令在什么情况下需要在服务器运行时使用?
mysqlcheck的语法格式相对直观:只需要在命令行中输入mysqlcheck,接着是相关的参数、目标数据库和表名。常见的参数包括:-B:处理数据库中所有的表-a:进行表的分析-A:检查所有数据库-c:专门用于检查表的错误例如,要检查并修复www数据库中的所有表,命令如下:[root@linuxcool ~]# mysqlcheck www...

MySQL怎么使用check约束
我们除了在程序上控制以外,我们还能使用 CHECK 约束 来规范数据。然而:mysql所有的存储引擎均不支持check约束,MySQL会对check子句进行分析,但是在插入数据时会忽略,因此check并不起作用,因此实现对数据约束有两种方法:1.在mysql种约束,如使用enum类型或者触发器等。2.在应用程序里面对数据进行检查再...

MySQL中的CK约束使用方法详解mysql中ck
MySQL中的CK约束使用方法详解 MySQL是一个常用的开源关系型数据库管理系统,MySQL中的CK约束可以用来限制表中某一列的取值范围。本文将详细介绍MySQL中CK约束的使用方法,包括CK约束的定义、CK约束的创建和CK约束的修改。一、CK约束的定义 CK约束是MySQL中的一种约束,全称为Check约束。它可以用来限制表中...

怎样使用Mysqlcheck来检查和修复,优化表
$ mysqlcheck -c newmandela order -uroot -pEnter password:newmandela.orderOKnewmandela 是库名, order是表名,还需要输入用户名和密码检查一个库中的所有表$ mysqlcheck -c newmandela -uroot -pEnter password:newmandela.account OKnewmandela.alarm OKnewmandela.alarm_settings OKnewmandela.auth...

check约束的介绍
在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式。例如,可以要求 authors 表的 postcode 列只允许输入六位数字的邮政编码。CHECK 约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。当除去某个表时,对这个表的CHECK 约束也将同时被去除。

MySQL保证数字不为负数mysql不为负数
1、使用CHECK约束 MySQL中支持使用CHECK约束来限制列中的值必须满足一定条件,例如:非负数。具体方法如下:CREATE TABLE `employee` (`id` INT(11) NOT NULL AUTO_INCREMENT,`salary` DECIMAL(10, 2) NOT NULL DEFAULT ‘0.00’ COMMENT ‘薪水’,PRIMARY KEY (`id`),...

相似回答