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 CHECKS
s 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.
Standort Hannover
newcubator GmbH
Bödekerstraße 22
30161 Hannover
Standort Dortmund
newcubator GmbH
Westenhellweg 85-89
44137 Dortmund