Vinzenz Mai: Unique-Constraints für Bereiche

Beitrag lesen

Hallo

Und wie würde es aussehen, wenn ich PostgreSQL verwenden würde? Ich bin denke ich mal sowieso nicht so in der Materie drin, als das ein Umstieg so aufwändig wäre (zumal mir auch noch einige andere Leute zu PostgreSQL geraten haben).

CHECK-CONSTRAINTS helfen hier auch nicht, ich zitiere aus dem entsprechenden Handbuchabschnitt:

<zitat>
    CHECK ( expression )

The CHECK clause specifies an expression producing a Boolean result which
    new or updated rows must satisfy for an insert or update operation to
    succeed. Expressions evaluating to TRUE or UNKNOWN succeed. Should any row
    of an insert or update operation produce a FALSE result an error exception
    is raised and the insert or update does not alter the database. A check
    constraint specified as a column constraint should reference that column's
    value only, while an expression appearing in a table constraint can
    reference multiple columns.

Currently, CHECK expressions cannot contain subqueries nor refer to
    variables other than columns of the current row.
</zitat>

Die sauberste Lösung wären Stored Procedures. Du erzwingst die Verwendung dieser Stored Procedures, indem *kein einziger* DB-Benutzer das INSERT oder UPDATE-Recht für diese Tabelle erhält, nur Ausführberechtigungen für die entsprechenden SPs.

Freundliche Grüße

Vinzenz