CHECK omezení nemohou aktuálně odkazovat na jiné tabulky. Manuál:
Aktuálně
CHECKvýrazy nemohou obsahovat poddotazy ani odkazovat na jiné položky než sloupce aktuálního řádku.
Jedním ze způsobů je použití spouštěče, jak to předvedl @Wolph.
Čisté řešení bez spouštěčů :přidat nadbytečné sloupce a zahrnout je do FOREIGN KEY omezení , které jsou první volbou k vynucení referenční integrity. Související odpověď na dba.SE s podrobnými pokyny:
- Vynucování omezení „o dva stoly dál“
Další možností by bylo "předstírat" IMMUTABLE funkce proveďte kontrolu a použijte ji v CHECK omezení. Postgres to umožní, ale dejte si pozor na možná upozornění. Nejlepší je, aby to bylo NOT VALID omezení. Viz:
- Při obnově výpisu deaktivujte všechna omezení a kontroly tabulek