gpt4 book ai didi

postgresql - hstore 键的唯一索引或约束

转载 作者:行者123 更新时间:2023-11-29 11:18:44 25 4
gpt4 key购买 nike

我想在 hstore 列中的特定键上创建唯一索引或约束(如果该键存在)。我希望能在另一个问题的某处找到答案:

Practical limitations of expression indexes in PostgreSQL

但是我尝试了我能想到的所有语法版本,但没有任何效果。

目前,我的 table 是

hstore_table

hstore字段是hstore_value

我想强制其唯一的键是“foo”和“bar”(当它们存在时)。

我的 PostgreSQL 版本是 8.4.13

最佳答案

如果我正确理解了您的要求,您需要一个部分唯一的功能索引:

CREATE TABLE hstest ( x hstore not null );

CREATE UNIQUE INDEX hstest_key_k1_values_unique
ON hstest((x -> 'k1'))
WHERE ( x ? 'k1' );

WHERE 子句不是严格要求的,因为如果找不到,键查找将为空。是否合适取决于您的查询。

如果你想要多个键,如果你希望这两个是独立的,则使用两个索引,或者如果你想链接它们,则索引两个表达式,以便唯一约束允许 (1,2) 和 (1,3) 或 (2 ,2) 而不是另一个 (1,2),像这样:

CREATE UNIQUE INDEX hstest_key_k1k2_values_unique 
ON hstest ((x -> 'k1'), (x -> 'k2'));

关于postgresql - hstore 键的唯一索引或约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262132/

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