Merci bien.
Le 11/02/2014 17:12, Guillaume Lelarge a écrit :
> On Tue, 2014-02-11 at 16:57 +0100, Alain Benard wrote:
>> Bonjour,
>> je souhaite réaliser une contrainte d'exclusion pour interdire par
>> exemple que 2 personnes réservent un même objet au même moment.
>> En premier lieu j'ai une table 'matable' avec un champ 'champ_periode'
>> de type daterange
>> Je positionne la contrainte suivante
>>
>> ALTER TABLE matable
>> ADD CONSTRAINT contrainte_periode
>> EXCLUDE USING gist (champ_periode WITH &&);
>>
>> C'est syntaxiquement correct et avec cette contrainte il ne peut plus y
>> avoir aucun chevauchement de période de réservation (tout objet ou toute
>> personne confondue) ce qui n'est pas vraiment mon besoin. Ce que je veux
>> c'est en plus la prise en compte de l'identifiant d'une personne (champ
>> de type integer).
>> Je positionne donc la contrainte suivante
>>
>> ALTER TABLE matable
>> ADD CONSTRAINT contrainte_periode
>> EXCLUDE USING gist (
>> id_personne WITH = ,
>> champ_periode WITH &&);
>>
>> J'obtiens les messages suivants :
>> ERROR: data type integer has no default operator class for access
>> method "gist"
>> HINT: You must specify an operator class for the index or define a
>> default operator class for the data type.
>>
>> J'ai pourtant vu ce type d'exemple à plusieurs reprise dans mes
>> recherches sur le web et je ne sais pas quoi utiliser comme syntaxe pour
>> arriver à mes fins.
> Vous devez installer l'extension btree_gist pour cela.
>
>