mysql学习问题-mysql的check约束对数据验证没有任何作用

MySQL可以使用check约束,但check约束对数据验证没有任何作用。--貌似新版本可以检查check约束了 ,英语太差,官方文档在此:https://dev.mysql.com/doc/refman/8.0/en/

-- check约束对数据验证没有任何作用,插入成功,不报错
INSERT INTO t_student VALUES (4,2345,'王五','深圳南山','13264581265',0,80);

解决方法:https://blog.csdn.net/ldx19980108/article/details/79921853

附件:对应表的创建

-- 表名和字段名系统默认会转换大写,即不区分大小写
DROP TABLE t_student;
create table t_student
(
  id int PRIMARY KEY NOT NULL, -- 主键必须唯一,不能为空
  stu_no INT UNIQUE ,-- 唯一约束,可以为空,除非设置为not NULL,并且可以有多个null
  stu_name varchar(20) NOT NULL,-- 非空约束
  stu_addr varchar(100) ,
  stu_phone varchar(11),
    stu_sex SMALLINT DEFAULT 1 CHECK(stu_sex in(0,1)),-- 检查约束,check约束
  stu_age tinyint(4)  NOT NULL DEFAULT 30 CHECK (stu_age BETWEEN 20 AND 60) -- 默认值约束,check约束对数据验证没有任何作用 not null必须在默认值前,否则会报错
)

 

posted @ 2019-05-14 15:23  依羽杉  阅读(1075)  评论(0编辑  收藏  举报