约束:如果您未满 18 岁,则不能成为非政府组织的支持者



我有以下表格: https://i.stack.imgur.com/bGvDW.png

在哪里可以输入此约束来检查年龄是否至少为 18 岁?有点令人困惑

我们可以使用 CHECK 约束,但我们必须对日期进行硬编码,因为 CHECK 约束中不允许CURRENT_DATE。请注意,检查约束仅在最近版本的 mySQL.
上起作用,如果这种方法不是您要寻找的,另一种可能性是插入前的触发器。触发器的优点是能够检查其他行和其他表,这是 CONSTRAINTS 无法做到的。

create table Supporter (
name varchar(25), 
email varchar(25), 
phone varchar(25), 
address varchar(25), 
zip_code varchar(25),
city varchar(25), 
birthday date CHECK (birthday < '2004-03-17')
) ;
insert into Supporter (name, birthday) values ('Andrew','2000-01-01');
insert into Supporter (name, birthday) values ('Bernard','2010-01-01');
检查约束"Supporter_chk_1"被违反。

db<>小提琴在这里

最新更新