CHECK
ograniczenia nie mogą obecnie odwoływać się do innych tabel. Instrukcja:
Obecnie CHECK
wyrażenia nie mogą zawierać podzapytań ani odnosić się do zmiennych innych niż kolumny bieżącego wiersza.
Jednym ze sposobów jest użycie wyzwalacza, jak zademonstrował @Wolph.
Czyste rozwiązanie bez wyzwalaczy :dodaj zbędne kolumny i uwzględnij je w FOREIGN KEY
ograniczenia , które są pierwszym wyborem w celu wymuszenia integralności referencyjnej. Powiązana odpowiedź na dba.SE ze szczegółowymi instrukcjami:
- Wymuszanie ograniczeń „dwa stoły dalej”
Inną opcją byłoby „fałszowanie” IMMUTABLE
funkcja robienie sprawdzenia i użycie tego w CHECK
ograniczenie. Postgres na to pozwoli, ale pamiętaj o możliwych zastrzeżeniach. Najlepiej, aby NOT VALID
ograniczenie. Zobacz:
- Wyłącz wszystkie ograniczenia i sprawdzanie tabeli podczas przywracania zrzutu