postgresql - 使用 group-by 的 Postgres 表约束

标签 postgresql constraints

我有一个如下所示的 Postgres 表:

Category     Unit          Default Unit
---------------------------------------
Currency     USD           True
Currency     EURO          False
Currency     AUS           False
Length       Kilometer     True
Length       Mile          False
Length       Foot          False
Length       Inch          False
Mass         Kilogram      True

我想设置一个表约束,以便每个类别只能有一个“默认单位”。

也许这可以在约束中使用 Group By 来完成吗?

最佳答案

您可以创建一个唯一的部分索引:

create unique index idx_table(category, default_unit) on table(category, default_unit)
    where default_unit;

关于postgresql - 使用 group-by 的 Postgres 表约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476736/

相关文章:

postgresql - 如何在 PostgreSQL 中创建只读用户?

ios - 更新布局 anchor 未按预期工作

postgresql - 列出 postgresql 表中的所有非空约束

python - 如何正确设置带有约束和多个最优值的 scipy.optimize 最小化?

sql - PostgreSQL 列名是否区分大小写?

postgresql - SQlAlchemy 批量插入对 postgresql 连接字符串占用了太多时间

generics - 元组上的 F# 成员约束

ios - 如何查询类并检查键是否为空或值

postgresql - 对超大数据集进行 LIKE 样式查询的索引列

mysql - 将 CAP_FIRST 函数从 MySQL 转换为 PostgreSQL