Re: CHECK-Constraint mit WHERE ?

From: Tobias Bußmann <e(dot)t(dot)bussmann(at)ing(dot)twinwave(dot)net>
To: <pgsql-de-allgemein(at)postgresql(dot)org>
Cc: <Martin(dot)Spott(at)mgras(dot)net>
Subject: Re: CHECK-Constraint mit WHERE ?
Date: 2006-06-20 12:06:18
Message-ID: 0b4501c69461$f872f5e0$2383fea9@LaptopTB
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo Martin,

Martin Spott wrote:
> Ich moechte aber, dass der Constraint nur auf bestimmte Geometrien
> angewendet wird und wuensche mir sinngemaess so etwas wie:
>
> CONSTRAINT enforce_covertype CHECK (covertype >= 0 AND covertype <
> 6) WHERE geomtype LIKE 'POLYGON%'

japp das Problem kenne ich. Ich habe folgende Lösung:

CONSTRAINT name CHECK (Where-Bedingung AND Eigentliche-Prüfung) OR NOT
Where-Bedingung

also in Deinem Fall:

CONSTRAINT enforce_covertype CHECK ((geomtype LIKE 'POLYGON%') AND
(covertype >= 0 AND covertype < 6)) OR NOT (geomtype LIKE 'POLYGON%')

so in dem Muster lassen sich sehr einfach bedingte Constraints realisieren.

hth

Tobias

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Bernd Helmle 2006-06-20 12:08:49 Re: CHECK-Constraint mit WHERE ?
Previous Message A. Kretschmer 2006-06-20 10:04:13 nervende eMails (was: Re: CHECK-Constraint mit WHERE ?)