capypad
0 Tage Serie
sql / expert
Snippet

Benutzerdefinierte Typ-Constraints via CREATE DOMAIN

Ein DOMAIN ist ein globales Schema-Objekt, das es ermöglicht, einen Datentyp mit lokalisierten Constraints zu definieren. Im Gegensatz zu einfachen Spalten-Checks fördern Domains die Wiederverwendbarkeit und zentralisieren die Validierungslogik über mehrere Tabellen hinweg.

snippet.sql
sql
1
2
3
4
5
6
7
CREATE DOMAIN valid_email AS VARCHAR(255)
CHECK (VALUE LIKE '%@%.%');
 
CREATE TABLE subscribers (
id INTEGER PRIMARY KEY,
email valid_email
);
Erklärung
1
CREATE DOMAIN valid_email AS VARCHAR(255)
Initialisiert eine benutzerdefinierte Domain basierend auf dem Typ VARCHAR.
2
CHECK (VALUE LIKE '%@%.%')
Wendet einen Constraint an, dass jede Instanz dieser Domain ein '@' und einen Punkt enthalten muss.
3
email valid_email
Verwendet die benutzerdefinierte Domain als Typ für eine Tabellenspalte und erzwingt automatisch die Prüfung.