CHECK begrænsninger kan i øjeblikket ikke referere til andre tabeller. Manualen:
I øjeblikket CHECK udtryk kan ikke indeholde underforespørgsler eller henvise til andre variabler end kolonner i den aktuelle række.
En måde er at bruge en trigger som demonstreret af @Wolph.
En ren løsning uden triggere :tilføje redundante kolonner og inkludere dem i FOREIGN KEY begrænsninger , som er det første valg til at håndhæve referentiel integritet. Relateret svar på dba.SE med detaljerede instruktioner:
- Håndhævelse af begrænsninger "to borde væk"
En anden mulighed ville være at "falske" en IMMUTABLE funktion gør kontrollen og brug den i en CHECK begrænsning. Postgres vil tillade dette, men vær opmærksom på mulige forbehold. Gør det bedst til en NOT VALID begrænsning. Se:
- Deaktiver alle begrænsninger og tabeltjek, mens du gendanner en dump