暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

字段检查约束

原创 simonchiang 2024-11-08
65

数据库的date类型字段支持范围是公元前 4713 年至未来的任何日期。
实际业务上有时候会出现一些明显有问题的数据(比如说0027-10-01),这种数据是符合数据库规范允许插入表的,但实际是有问题的,不想这种数据被插入表。

这时就可以在相应的字段上添加检查约束

Vertica约束有以下几类:
- 主键约束
- 外键约束
- 唯一键约束
- 非空约束
- 检查约束
复制

这里的检查约束(Check Constraints)就可以在字段上做一些限制条件,不符合这一限制条件的就会被拒绝插入表。

drop table a; create table a( c1 date, CONSTRAINT c1morethan2010 CHECK (YEAR(c1)>2010) --设置检查插入的数据年份必须大于2010年 ); insert into a values('0027-10-01'); ERROR 7230: Check constraint 'public.a.c1morethan2010' (year(a.c1) > 2010) violation: 'c1=0027-10-01' --因为‘0027-10-01’这一数据的年份为0027年,小于设置的约束“CHECK (YEAR(c1)>2010)”而被拒绝。 insert into a values('2011-10-01'); commit; OUTPUT -------- 1 (1 row) select * from a ; c1 ------------ 2011-10-01 (1 row)
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论