[英]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.