sql检查生日的约束年龄

时间:2016-11-19 23:37:24

标签: sql

创建表格时如何为age < 40 from birthdate设置检查约束? 类似的东西:

SELECT DATEDIFF(yy,” Birthdate ”, getdate()) as age
age<40

那么在创建表格和计算属性,对其进行分组并检查它是否&gt;时,我怎么能有另一个检查约束? 6?

如下面但作为检查约束?

select count(attributex) as counter from entityx
group by attributex
having counter>6

2 个答案:

答案 0 :(得分:0)

创建表时检查约束: http://www.w3schools.com/sql/sql_check.asp

对于第二个问题,我猜你想要设置一个检查约束,这将限制为条件(年龄> 6和年龄<40)插入的行数。为此,检查最大限制而不是最小限制更有意义,如下例所示:

CREATE TABLE EnitityX
(
Age int NOT NULL,
RecordId int NOT NULL AUTO_INCREMENT,
CHECK (Age>6),
CHECK (Age<40),
CHECK (RecordId<6)
)

答案 1 :(得分:0)

create table person (Birthdate date check (DATEDIFF(year,Birthdate,getdate()) < 40))
insert into person (Birthdate) values ('1990-01-01');
  

(1行受影响)

insert into person (Birthdate) values ('1970-01-01');
  

Msg 547,Level 16,State 0,Line 7
  INSERT语句与CHECK约束“CK__person__Birthdat__30F848ED”冲突。冲突发生在数据库“dmarkovitz”,表“dbo.person”,列'Birthdate'。