在postgresql(9.2)中,我有一个表:
tservice timestamp without time zone NOT NULL, patient_recid integer NOT NULL
我希望在tservice 的日期创建一个独特的约束,如:
constraint service_unique UNIQUE (patient_recid, tservice::date)
这会在日期转换时产生语法错误.
如何在PostgreSQL中做得最好?
TIA
奇怪的是,似乎PostgreSQL只允许唯一约束中的列,但这里不允许使用表达式.
您可以创建唯一的功能索引(作为变通方法),从9.1版支持表达式的索引:
create unique index service_unique ON table_name(patient_recid, date_trunc('day',tservice));