Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utrzymać ograniczenie klucza obcego w różnych bazach danych?

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 i UPDATE przeciwko tabeli podrzędnej. Zapytanie o pasujący wiersz w tabeli nadrzędnej. Niepowodzenie INSERT /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. Niepowodzenie DELETE 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. Niepowodzenie UPDATE 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możemy połączyć zdalną bazę danych MySQL w systemie Android za pomocą JDBC?

  2. Python SQL — jak korzystać z baz danych SQLite, MySQL i PostgreSQL w Pythonie

  3. Czy mogę połączyć wiele wierszy MySQL w jedno pole?

  4. Jak uporządkować maksymalnie dwie kolumny, które w MySQL mogą być puste?

  5. 4 przydatne narzędzia wiersza poleceń do monitorowania wydajności MySQL w systemie Linux