CHECK
beperkingen kunnen momenteel niet verwijzen naar andere tabellen. De handleiding:
Momenteel
CHECK
expressies kunnen geen subquery's bevatten en mogen niet verwijzen naar andere variabelen dan kolommen van de huidige rij.
Een manier is om een trigger te gebruiken zoals gedemonstreerd door @Wolph.
Een schone oplossing zonder triggers :voeg overbodige kolommen toe en neem ze op in FOREIGN KEY
beperkingen , die de eerste keuze zijn om referentiële integriteit af te dwingen. Gerelateerd antwoord op dba.SE met gedetailleerde instructies:
- Restricties opleggen "twee tafels verder"
Een andere optie zou zijn om een IMMUTABLE
te "faken" functie doe de controle en gebruik die in een CHECK
beperking. Postgres staat dit toe, maar houd rekening met mogelijke voorbehouden. Maak daar best een NOT VALID
van beperking. Zie:
- Schakel alle beperkingen en tabelcontroles uit tijdens het herstellen van een dump