我创建了一个时间字段如下:
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有人知道如何解决这个问题吗?
发布于 2018-06-18 13:12:25
您正在将date转换为timestamp with timezone,该函数不是不变的,而是相当稳定的。这是这样的,因为对于通过的相同的论点,它不会总是给出相同的结果。
我在这里看到两种选择:
1)更改约束以使用daterange (或没有时区的时间戳):
EXCLUDE USING gist (campaign WITH =, daterange(start_date, end_date) WITH &&)2)将表中这些字段的类型更改为时间戳
https://stackoverflow.com/questions/50909662
复制相似问题