CHECK
omezení nemohou aktuálně odkazovat na jiné tabulky. Manuál:
Aktuálně
CHECK
vý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