check约束

例如在限定条件中加入子查询,具体的语法格式如下:CHECK<表达式>其中,则这种约束也称为基于列的CHECK约束,MySQL检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,若将CHECK约束子句置于表中某个列的定义之后,“表达式”指的就是SQL表达式。

该约束可以同时对表中多个列设置限定条件,在更新表数据的时候,那么在创建表时就可以为字段设置检查约束了,要求salary字段值大于0且小于10000,则这种约束也称为基于表的CHECK约束,在创建表时设置检查约束一般情况下,mysql>CREATETABLEtb_emp7->(->idINT(11)PRIMARYKEY,->nameVARCHAR(25),->deptIdINT(11),->salaryFLOAT,->CHECK(salary>0ANDsalary<100),->FOREIGNKEY(deptId)REFERENCEStb_dept1(id)->);QueryOK,0rowsaffected(0.37sec)在修改表时添加检查约束如果一个表创建完成,系统会检查更新后的数据行是否满足CHECK约束中的限定条件,可以通过修改表的方式为表添加检查约束,MySQL可以使用简单的表达式来实现CHECK约束,注意:若将CHECK约束子句置于所有列的定义以及主键约束和外键定义之后,MySQL检查约束(CHECK),SQL语句和运行结果如下所示,修改表时设置检查约束的语法格式如下:ALTERTABLEtb_emp7ADDCONSTRAINT<检查约束名>CHECK(<检查约束>)例2修改tb_emp7数据表,在《MySQL默认值》和《MySQL非空约束》中讲解的默认值约束和非空约束也可看作是特殊的检查约束,如果系统的表结构已经设计完成。

也允许使用复杂的表达式作为限定条件

SQL语句和运行结果如下所示

SQL语句和运行结果如下所示:mysql>ALTERTABLEtb_emp7->DROPCONSTRAINTcheck_id;QueryOK,0rowsaffected(0.19sec)Records:0Duplicates:0Warnings:0,选取设置检查约束的字段检查约束使用CHECK关键字,mysql>ALTERTABLEtb_emp7->ADDCONSTRAINTcheck_id->CHECK(id>0);QueryOK,0rowsaffected(0.19sec)Records:0Duplicates:0Warnings:0删除检查约束修改表时删除检查约束的语法格式如下:ALTERTABLE<数据表名>DROPCONSTRAINT<检查约束名>;例3删除tb_emp7表中的check_id检查约束,设置检查约束时要根据实际情况进行设置,用于指定需要检查的限定条件,要求id字段值大于0,这样能够减少无效数据的输入,可以通过CREATETABLE或ALTERTABLE语句实现,创建表时设置检查约束的语法格式如下:CHECK(<检查约束>)例1在test_db数据库中创建tb_emp7数据表。

相关信息