我需要向某些列添加约束,为此我使用了string_to_array函数,然后我需要使用&& operator检查一些重叠,但是我得到了一个错误:数据类型text[]没有默认的访问方法"gist“的操作符类。我怎么才能修好它?也许我需要增加一些扩展?或者波斯妞不支持这样的案子
发布于 2020-04-22 21:57:56
你的桌子大概是这样的:
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。
https://stackoverflow.com/questions/61372362
复制相似问题