我有下表:
events
- id
- venue_id
- starts_at
- ends_at
我發現了這個約束https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-EXCLUDE但我不確定我是否理解如何使用它來防止創建重疊事件同時考慮到venue_id這樣可以有重疊的事件,但不能用于相同的場地。
例如:
EXCLUDE USING gist (tsrange(starts_at, ends_at)并以某種方式考慮場地_id
謝謝
uj5u.com熱心網友回復:
您需要將時間戳范圍的“重疊”=與venue_id
alter table events
add constraint no_overlapping_events
exclude using gist (venue_id with =, tsrange(starts_at, ends_at) with &&)
請注意,由于使用了運算子,這需要bree_gist擴展=
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/476557.html
標籤:sql PostgreSQL
上一篇:C#XML反序列化忽略默認值屬性
