繁体   English   中英

Django postgres约束条件不包含GIST

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM