【发布时间】:2021-11-14 19:23:45
【问题描述】:
我有一个要求,我需要根据两列唯一标识一行。
nType | dType | severity
------+-------+----------
down | 6500 | CRITICAL
nType 和 dType 的组合应该始终是唯一的。所以,我创建了一个表使用
CREATE TABLE IF NOT EXISTS severitymapping(nType text, dType text, severity text,
PRIMARY KEY (nType, dType);
但可能有 dType 为空的情况。所以,这对于我的业务逻辑来说也是独一无二的。但数据库不允许数据库中的 dType 为空/空值。
有没有办法做到这一点?
【问题讨论】:
-
我会非常小心使用两个 Text 列作为您的主键,因为这也是您的集群键,它不是一个好的候选者,除非它是一个很少的小表写道(这很可能是基于描述)。您最好添加代理自动增量列作为主键,然后在 ntype 和 dtype 上定义唯一约束。 Example on db-fiddle