[英]Django postgres constraint EXCLUDE WITH GIST
我创建了一个时间字段,如下所示:
start_date = models.DateField()
end_date = models.DateField()
尝试在表上创建约束时
ALTER TABLE analytics
EXCLUDE USING gist (campaign WITH =, tstzrange(start_date, end_date) WITH &&)
我得到一个错误
ERROR: functions in index expression must be marked IMMUTABLE
有人知道如何解决此问题吗?
您正在timestamp with timezone
将date
为timestamp with timezone
并且该函数不是不可变的,而是稳定的。 之所以这样,是因为对于传递的相同参数,它不会总是给出相同的结果。
我在这里看到2个选项:
1)更改约束以使用日期范围(或不带时区的时间戳):
EXCLUDE USING gist (campaign WITH =, daterange(start_date, end_date) WITH &&)
2)将表中这些字段的类型更改为timestamptz
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.