当前位置:  开发笔记 > 数据库 > 正文

如何在时间戳的日期创建唯一约束

如何解决《如何在时间戳的日期创建唯一约束》经验,为你挑选了1个好方法。

在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



1> krokodilko..:

奇怪的是,似乎PostgreSQL只允许唯一约束中的列,但这里不允许使用表达式.

您可以创建唯一的功能索引(作为变通方法),从9.1版支持表达式的索引:

create unique index service_unique 
ON table_name(patient_recid, date_trunc('day',tservice));

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有