Practical limitations of expression indexes in PostgreSQL
但我尝试了我能提出的每个版本的语法,没有任何方法可行.
目前,我的表是
hstore_table
hstore字段是hstore_value
当它们存在时,我想要强制独特的是’foo’和’bar’.
我的Postgre@R_419_6983@版本是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子句不是严格要求的,因为如果找不到键查找将为null.它是否合适取决于您的查询.
如果你想要多个键,如果你想要两个键是独立的,可以使用两个索引;如果你想链接它们,可以使用索引两个表达式,这样唯一约束允许(1,2)和(1,3)或(2,2)但不是另一个(1,2),像这样:
CREATE UNIQUE INDEX hstest_key_k1k2_values_unique ON hstest ((x -> 'k1'),(x -> 'k2'));总结
以上是内存溢出为你收集整理的postgresql – 对hstore密钥的唯一索引或约束全部内容,希望文章能够帮你解决postgresql – 对hstore密钥的唯一索引或约束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)