Postgresql约束在时间戳之间没有重叠

问题描述 投票:0回答:1

我正在尝试创建一个包含营业时间的表格(适用于自助餐厅)但是我在实现约束时遇到了一些问题。对于每个餐厅,营业时间不能重叠。

CREATE table openinghours(
    id serial PRIMARY key,
    start timestamp NOT NULL,
    duration interval NOT NULL,
    resto_naam varchar REFERENCES resto(naam),
    constraint openingstijden_duplicate_check EXCLUDE USING GIST (
        resto_naam WITH =,
        /* Check wether there is no overlap between the dates */
        tsrange(start, start + duration) WITH &&
    )
);

当我尝试执行此SQL时,出现以下错误:

错误:数据类型字符变化没有访问方法“ gist”的默认运算符类提示:您必须为索引指定一个运算符类或为数据类型定义一个默认的运算符类。SQL状态:42704

任何帮助将不胜感激!

sql postgresql timestamp constraints
1个回答
0
投票

您需要btree_gist扩展名才能正常工作。执行create btree_gist,然后重试。

最好的问候,Bjarni

© www.soinside.com 2019 - 2024. All rights reserved.