Je souhaite créer un index ou une contrainte unique sur une clé spécifique dans une colonne hstore si cette clé existe. J'espérais la réponse se trouverait quelque part dans cette autre question:index ou contrainte unique sur la clé hstore
Practical limitations of expression indexes in PostgreSQL
Mais j'ai essayé toutes les versions de la syntaxe que je pourrais venir avec et rien ne fonctionne.
actuellement, ma table est
hstore_table
le champ hstore est hstore_value
et ils clés Je voudrais forcer à être unique sont 'foo' et 'bar' lorsqu'ils existent.
Ma version de PostgreSQL est 8.4.13
A travaillé PARFAITEMENT! – trex005
La documentation indique "Chaque clé dans un hstore est unique." Je ne comprends pas pourquoi nous aurions besoin d'ajouter le type d'index que vous montrez. Est-ce que je manque quelque chose? – IamIC
@IamIC L'affiche originale voulait s'assurer que pour deux lignes A et B différentes, le champ hstore 'h' ne pouvait pas contenir la même clé 'k' avec la même valeur entre les deux lignes. c'est-à-dire s'il existe une rangée 'A.h {k = 1}' interdire l'insertion de la rangée 'B.h {k = 1}' mais autoriser l'insertion de 'B.h {k = 2}' ou 'B.h {x = 1}'. Comme une contrainte 'UNIQUE', mais en appliquant sur la valeur de la clé hstore, pas la colonne dans son ensemble. –