【发布时间】:2021-07-12 13:46:09
【问题描述】:
举个简单的例子,假设我有一个list 表和一个list_entry 表:
CREATE TABLE list
(
id SERIAL PRIMARY KEY,
);
CREATE TABLE list_entry
(
id SERIAL PRIMARY KEY,
list_id INTEGER NOT NULL
REFERENCES list(id)
ON DELETE CASCADE,
position INTEGER NOT NULL,
value TEXT NOT NULL,
CONSTRAINT list_entry__position_in_list_unique
UNIQUE(list_id, position)
);
我现在想添加以下约束:具有相同list_id 的所有列表条目都有position 条目,它们形成从1 开始的连续序列。
我不知道怎么做。
我首先想到了EXCLUDE 约束,但这似乎无济于事。
当然可以创建一个触发器,但如果可能的话,我宁愿不这样做。
【问题讨论】:
-
如果您将此作为约束强制执行,那么删除条目将非常麻烦。
标签: sql postgresql constraints postgresql-9.6 exclusion-constraint