我正在尝试向我的现有表之一添加 EXCLUDE 约束,这是我正在运行的 sql:
ALTER TABLE appointment_service
ADD COLUMN start_time bigint,
ADD COLUMN end_time bigint,
EXCLUDE USING gist (
professional_id WITH =,
int8range(start_time, end_time) WITH &&
),
ADD COLUMN professional_id text REFERENCES professionals ON DELETE CASCADE ON UPDATE CASCADE
这是我得到的错误。
ERROR: syntax error at or near "EXCLUDE"
LINE 4: EXCLUDE USING gist (
完成此任务的正确 SQL 语法是什么?
最佳答案
您需要单独添加排除约束。
首先添加列:
ALTER TABLE appointment_service
ADD COLUMN start_time bigint,
ADD COLUMN end_time bigint,
ADD COLUMN professional_id text
REFERENCES professionals ON DELETE CASCADE ON UPDATE CASCADE;
然后添加约束:
ALTER TABLE appointment_service
add constraint unique_professional_id
EXCLUDE USING gist (
professional_id WITH =,
int8range(start_time, end_time) WITH &&
)
关于sql - PostgreSQL 在 alter table 上添加 EXCLUDE 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352108/