27.10.2021 |

CHECK Constraints in Postgres

CHECK Constraints sind eine coole Möglichkeit um Domainbeschränkungen auf Datenbankebene abzubilden.

Z.B. kann man dafür sorgen dass ein Produkt immer einen positiven Preis hat:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric CHECK (price > 0)
);

Referenzierung von mehreren Columns ist auch möglich:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric CHECK (price > 0),
    discounted_price numeric CHECK (discounted_price > 0),
    CHECK (price > discounted_price)
);

Man sollte allerdings keine CHECKSs auf andere Tabellen damit implementieren, das ist zwar generell möglich, Postgres kann hier aber keine Konsistenz garantieren, sodass die Datenbank u.U. in einen Zustand kommen kann bei dem man einen Datenbankdump nicht mehr importieren kann. Diese Constraints sollten als TRIGGER implementiert werden.

Zur Übersicht
Hendrik Janßen

Mehr vom Devsquad...

Jörg Herbst

Passwörter teilen

Sophia Brandt

Hugo - der bessere Generator für statische Webseiten?

Hallo, ich bin Jörg Herbst!

Ich bin der CEO von newcubator und freue mich über jede Nachricht!

* Pflichtfeld