Contrainte d'exclusion.

From: Alain Benard <alain(dot)benard(at)nancy(dot)inra(dot)fr>
To: PG-Mail-liste <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Contrainte d'exclusion.
Date: 2014-02-11 15:57:31
Message-ID: 52FA486B.4020009@nancy.inra.fr
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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.
Merci par avance.
Alain.

Attachment Content-Type Size
alain_benard.vcf text/x-vcard 292 bytes
unknown_filename text/plain 76 bytes

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Guillaume Lelarge 2014-02-11 16:12:17 Re: Contrainte d'exclusion.
Previous Message Dimitri Fontaine 2014-02-04 10:01:27 Re: Bouger les indes les plus sollicités