簡體   English   中英

如何在 PostgresSQL 中的文本數組中查找重疊

[英]How to find overlaps in text array in PostgresSQL

我需要為某些列添加約束,為此我使用了 string_to_array function,然后我需要在 && 運算符的幫助下檢查一些重疊,但我收到一個錯誤:數據類型 text[] 沒有默認運算符 class 用於訪問方法“要旨”。 我該如何解決? 也許我需要添加一些擴展? 或者 Posgress 不支持這種情況

您的表格可能如下所示:

CREATE TABLE texts (
   id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   vals text[] NOT NULL
);

如果您已正確規范化表格,則解決方案將很簡單:

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隔離級別,否則觸發器總是受到並發數據修改的競爭條件的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM