PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

CONSTRAINT do sprawdzania wartości ze zdalnie powiązanej tabeli (poprzez połączenie itp.)

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podziel dane kolumny oddzielone przecinkami na dodatkowe kolumny

  2. Postgresql:Jak znaleźć plik pg_hba.conf w systemie Mac OS X?

  3. Funkcja LEAST() w PostgreSQL

  4. Jak obsłużyć opcjonalną wartość zwracaną przez zapytanie za pomocą skrzynki postgres?

  5. Poprawka:„operator nie istnieje:liczba całkowita || liczba całkowita” w PostgreSQL