Nie mogę wymyślić żadnego sposobu, aby to zrobić ze standardowym MySQL.
Możesz napisać wtyczkę dla MySQL Proxy , który zarządza integralnością referencyjną między tabelami nadrzędnymi i podrzędnymi na różnych serwerach:
-
Przechwyć
INSERTiUPDATEprzeciwko tabeli podrzędnej. Zapytanie o pasujący wiersz w tabeli nadrzędnej. NiepowodzenieINSERT/UPDATEjeśli nie znaleziono dopasowania w tabeli nadrzędnej. -
Przechwyć
DELETEw stosunku do tabeli nadrzędnej. Zapytanie o wiersze zależne w tabeli podrzędnej. NiepowodzenieDELETEjeśli w tabeli podrzędnej znaleziono jakiekolwiek wiersze zależne. Jeśli ograniczenie ma wspierać zachowanie kaskadowe, zrób to zamiast zawodzić. -
Przechwyć
UPDATEw stosunku do tabeli nadrzędnej. Jeśli wartość klucza podstawowego zmienia się w ramach aktualizacji, wykonaj zapytanie o wiersze zależne znalezione w tabeli podrzędnej. NiepowodzenieUPDATEjeśli w tabeli podrzędnej znaleziono jakiekolwiek wiersze zależne. Jeśli ograniczenie ma wspierać zachowanie kaskadowe, zrób to zamiast zawodzić.
Pamiętaj, że musisz przechowywać informacje o ograniczeniach integralności referencyjnej we wtyczce MySQL Proxy (lub napisać niestandardowy plik konfiguracyjny wtyczki, który rejestruje relacje). Nie możesz użyć konwencjonalnego FOREIGN KEY składnia do deklarowania takich ograniczeń w instancjach MySQL.