DOMAIN (Postgres)
PostgreSQL-Funktion: einen eigenen Typ mit eingebautem Constraint erstellen. CREATE DOMAIN email AS TEXT CHECK (VALUE ~ '^[^@]+@[^@]+$'). Als Spaltentyp verwendet, gilt der Constraint automatisch überall.
Nützlich, um dasselbe CHECK nicht in 20 Tabellen zu wiederholen: CREATE DOMAIN positive_int AS INTEGER CHECK (VALUE >= 0). Zu unterscheiden von CREATE TYPE, das für zusammengesetzte Typen gedacht ist. Bei einer Migration ändert ALTER DOMAIN alle Tabellen, die den Typ verwenden, auf einen Schlag. Der Nachteil: Die Logik verschwindet im Typsystem und ist im Tabellenschema nicht mehr auf den ersten Blick sichtbar. Kein besonders populäres Feature — viele PostgreSQL-Nutzer erreichen dasselbe mit einem Inline-CHECK. ENUM-Typen decken ähnliches Terrain ab, allerdings für feste Wertelisten.