gpt4 book ai didi

postgresql - 只有一个整数组合的 Postgres 索引

转载 作者:行者123 更新时间:2023-11-29 12:52:14 24 4
gpt4 key购买 nike

我正在开发一个必须引用另一个应用程序创建的数据的系统。另一个应用程序数据库有一个表,其中包含:

| contactid | revision | lineno | other data... || 12345     | 00       | 01     | other data... || 12345     | 00       | 02     | other data... || 12345     | 01       | 01     | other data... || 12345     | 01       | 02     | other data... || 67890     | 00       | 01     | other data... || 67890     | 01       | 01     | other data... |

关键是contractid, revision, lineno。在我的系统中,我一次只能激活一个合约,所以如果在我的表中我有

| 12345     | 00       | 01     | other data... || 12345     | 00       | 02     | other data... |

我不能在表中使用不同修订版的相同 contractid。我可以使用什么样的索引来强制执行这种任性的唯一性。

最佳答案

你需要一个 exclude constraint.

create table my_table(
contactid int,
revision text,
lineno text,
other_data text,
exclude using gist (contactid with =, revision with <>)
);

DbFiddle.

约束使用 btree 运算符 <>= ,因此 btree_gist extension必须安装。

create extension if not exists btree_gist;

关于postgresql - 只有一个整数组合的 Postgres 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51117720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com