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ć
INSERT
iUPDATE
przeciwko tabeli podrzędnej. Zapytanie o pasujący wiersz w tabeli nadrzędnej. NiepowodzenieINSERT
/UPDATE
jeśli nie znaleziono dopasowania w tabeli nadrzędnej. -
Przechwyć
DELETE
w stosunku do tabeli nadrzędnej. Zapytanie o wiersze zależne w tabeli podrzędnej. NiepowodzenieDELETE
jeśli w tabeli podrzędnej znaleziono jakiekolwiek wiersze zależne. Jeśli ograniczenie ma wspierać zachowanie kaskadowe, zrób to zamiast zawodzić. -
Przechwyć
UPDATE
w 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. NiepowodzenieUPDATE
jeś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.