[英]Postgres - array date column with constraint
我正在尝试创建一个表test_table
,该表的year
列采用“年”数组,如下所示:
CREATE TABLE avg_yearly_currencies_used (
id serial PRIMARY KEY,
year date[],
CONSTRAINT first_jan_check CHECK ( date_trunc('year', year) = year )
);
CONSTRAINT
检查日期是否采用以下格式: 2010-01-01
或2012-01-01
。
如果year
列不是数组,则上述命令可以正常工作并创建表。 但是,通过将日期设为数组并使用CONSTRAINT
,我得到以下错误:
ERROR: function date_trunc(unknown, date[]) does not exist
如何将CONSTRAINT
应用于数组列year
?
您可以使用以下方法
create function check_date (
date_ date[]) returns boolean as
$$
declare
result boolean;
begin
select bool_and (date_trunc('year', n) = n) into result
from unnest(date_) s(n);
return result;
end;
$$
language plpgsql immutable;
CREATE TABLE avg_yearly_currencies_used (
id serial PRIMARY KEY,
year date[],
CONSTRAINT first_jan_check CHECK (check_date(year))
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.