Re: Contrainte d'exclusion.

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: alain(dot)benard(at)nancy(dot)inra(dot)fr
Cc: PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Contrainte d'exclusion.
Date: 2014-02-11 16:12:17
Message-ID: 1392135137.2562.71.camel@localhost
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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.

--
Guillaume
http://blog.guillaume.lelarge.info
http://www.dalibo.com

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Alain Benard 2014-02-11 16:27:15 Re: Contrainte d'exclusion.
Previous Message Alain Benard 2014-02-11 15:57:31 Contrainte d'exclusion.