首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PostgresSQL中查找文本数组中的重叠

如何在PostgresSQL中查找文本数组中的重叠
EN

Stack Overflow用户
提问于 2020-04-22 18:22:49
回答 1查看 64关注 0票数 0

我需要向某些列添加约束,为此我使用了string_to_array函数,然后我需要使用&& operator检查一些重叠,但是我得到了一个错误:数据类型text[]没有默认的访问方法"gist“的操作符类。我怎么才能修好它?也许我需要增加一些扩展?或者波斯妞不支持这样的案子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-22 21:57:56

你的桌子大概是这样的:

代码语言:javascript
复制
CREATE TABLE texts (
   id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   vals text[] NOT NULL
);

如果您对表进行了适当的规范化,那么解决方案将很容易:

代码语言:javascript
复制
CREATE TABLE texts (
   id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
);

CREATE TABLE texts_vals (
   id bigint REFERENCES texts NOT NULL,
   val text PRIMARY KEY
);

唯一性是自动保证的!

对于文本数组,它不能用简单的约束来完成。

您可以创建一个检查条件的触发器,但是,除非使用触发器总是受竞争条件的影响。隔离级别,否则可以通过并发数据修改来检查SERIALIZABLE

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61372362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档