【发布时间】:2021-03-08 17:18:00
【问题描述】:
我有一种情况,我需要组合多个字段来检查唯一性,但需要单独检查唯一性。例如,
- (A, 1) - 应该通过并成功插入
- (B, 2) - 应该通过并成功插入
- (B, 1) - 应该会失败,因为已经有一个“1”
- (A, 2) - 应该会失败,因为已经有一个 '2'
为两个字段设置唯一性不会禁止插入 (3) 和 (4),因为唯一性会检查这两个字段。我不能将这两个字段作为主键,因为我有一个丰富的架构并且已经有一个唯一的 UUID 作为主键。
【问题讨论】:
-
一个唯一的约束就足够了吗?
CREATE TABLE t (c1 TEXT, c2 TEXT UNIQUE );?如果表已经存在:ALTER TABLE t ADD CONSTRAINT un_c2 UNIQUE (c2);
标签: postgresql constraints uniq