PostgreSQL 如何在整数数组上创建排除约束以防止数组值重叠



当我在表上添加排除约束以防止在 int[] 中具有相同值的两行时,我收到以下错误消息:

数据类型 Integer[] 没有用于访问方法 "gist" 的默认运算符类

我有一张这样的桌子:

CREATE TABLE x (
  id SERIAL PRIMARY KEY,
  ref_id INT REFERENCES x,
  purchase_ids INT[],
  EXCLUDE USING GIST(purchase_ids WITH &&) WHERE(ref_id IS NULL)
);

我的同事通过创建一个扩展来解决这个问题:

CREATE EXTENSION IF NOT EXISTS intarray;

创建此扩展后,我可以添加排除约束以防止数组中具有相同元素的两行。

最新更新