您现在的位置是:首页» windows系统» check约束和规则的区别,check语句的约束是哪类完整性约束

check约束和规则的区别,check语句的约束是哪类完整性约束

2023-12-05 06:32:17
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! 1、用sql命令语句写CHECK约束的格式为CHECK(约束条件)。2、成绩编号 int NOT NULL PRIMARY KEY,3、学生编号 nchar(50) NOT NULL,

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

1、用sql命令语句写CHECK约束的格式为CHECK(约束条件)。

2、成绩编号 int NOT NULL PRIMARY KEY,

3、学生编号 nchar(50) NOT NULL,

4、考试编号 nchar(10) NOT NULL,

5、课程编号nchar(10) NOT NULL,

6、分数 nchar(10) NOT NULL CHECK(分数in(between'0' and'100'))

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

8、CHECK约束不接受计算结果为 FALSE的值。因为空值的计算结果为 UNKNOWN,所以如果赋值表达式中存在这些值,则约束可能会被覆盖而不起作用。如果 CHECK约束检查的条件对于表中的任何行都不是 FALSE,它将返回 TRUE。

9、如果刚创建的表没有任何行,则此表的任何 CHECK约束都视为有效。执行 DELETE语句时不验证 CHECK约束。因此,使用特定类型的 CHECK约束对表执行 DELETE语句时可能会产生意外结果。

现在要说的是在列这一层次过滤的基于表定义之前就规范好的 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.不适用于存储过程和存储函数。

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

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

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com