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