CREATE TABLE customer (
date_of_birth date NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
试图使某人在将值插入表中时不能输入小于 18 岁的年龄。我将如何使用 date_of_birth 属性执行此操作?
注意:我知道如何使用 CHECK(age > 18),但我不知道如何将它与 date_of_birth 属性合并。
使用基于 current_date 值的 CHECK 约束。由于 current_date 总是随着时间的推移而增加,任何今天通过这个约束的值明天也将通过它。
CREATE TABLE customer (
date_of_birth date NOT NULL
check ( date_of_birth < (current_date - interval '18' year ) )
);
insert into customer values ('1996-09-29');
Run Code Online (Sandbox Code Playgroud)
错误:关系“客户”的新行违反检查约束“customer_date_of_birth_check”
insert into customer values ('1996-09-28');
Run Code Online (Sandbox Code Playgroud)
查询成功返回:一行受影响,22 毫秒执行时间。
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |