这是包含 3 列的示例表(ID、UNIQUE_VALUE、UNIQUE_GROUP_ID)
我希望可以允许以下记录:
(1, NULL, NULL)
(2, NULL, NULL)
or
(3, NULL, 7)
(4, 123, 7)
or (注意:此条件不允许unique index
nor unique constraint
)
(5, NULL, 7)
(6, NULL, 7)
并且这些是不允许的:
(7, 123, 7)
(8, 123, 7)
我在最后 2 列上创建了唯一索引,但只允许前 2 个示例。
仅当这两列都不为空时,是否可以让 db 检查这两列的唯一性?
您只想在同时存在的行上强制执行唯一性UNIQUE_VALUE
and UNIQUE_GROUP_ID
不为空。为此,您可以使用基于函数的唯一索引:
CREATE UNIQUE INDEX func_based_index ON the_table
(CASE WHEN unique_value IS NOT NULL
AND unique_group_id IS NOT NULL
THEN UNIQUE_VALUE || ',' || UNIQUE_GROUP_ID
END);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)