此处是我的代码:
CREATE TABLE sektors (
id_sektors SERIAL PRIMARY KEY,
laukuma_nosaukums varchar(100) UNIQUE,
m2 int CHECK(m2 ~ '^[^0-9]*$')
datums_no date CHECK(datums_no XXX???),
datums_lidz date CHECK(datums_lidz XXX???),
id_koka_veds int NOT NULL REFERENCES koku_veids(id_veids),
id_audzesanas_veids int NOT NULL REFERENCES audzesanas_veids(id_audzesanas_veids),
id_senu_veids int NOT NULL REFERENCES senu_veids(id_senu_veids)
);
我想要实现的目标:
laukuma_nosaukums - 只能包含唯一条目
m2 - 只能包含数字?如果这是对的话,不知道。
datums_no - 不知道如何编写它,但我想这样:我只能输入比当前日期早的日期。
datums_lidz - 也不知道这一点。我想要这样:我只能输入从当前日期起不超过3个月的日期。
答案 0 :(得分:0)
这应该可以满足日期字段的需要。重要的是,请使用current_date
,而不是now()
。前者是一个特殊的系统变量。后者将在您创建表时进行评估,一旦日期发生变化就会导致错误。
create table sektors (
...
datums_no date
CHECK (old_date < current_date),
datums_lidz date
CHECK (not_old_date <= (current_date + '3 months'::interval)),
...
);