2
を除外するための範囲は、私は次の表を持っています。Postgresの「タイムゾーンのない時間」と制約
私は次のことを試してみました:
alter table booking add constraint overlapping_times
exclude using gist
(
cast(room as text) with =,
period(start_time, end_time) with &&)
);
これは二つの問題がありますERROR: data type text has no default operator class for access method "gist"
を:text
にroom
キャスト
は、それが与える、十分ではありません。私はv10の中に
btree_gist
があることを知っていますが、v9.5とv9.6を使用していますので、手動でuuid
をtext
afaikにキャストしなければなりません。period(...)
が間違っていますが、time without time zone
タイプの範囲をどのように構築するかわかりません。 installingbtree_gist後
ありがとう、これは動作します! v10では、 'btree_gist'が' uuid'型をサポートしているので、そのキャストを削除することができます。 –
私はあなたがカスタムレンジを構築できるかどうか分かりませんでした。カッコいい! –