sql >> Database teknologi >  >> RDS >> Mysql

Hvordan vedligeholdes fremmednøglebegrænsning på tværs af forskellige databaser?

Jeg kan ikke komme i tanke om nogen måde at gøre dette på med standard MySQL.

Du kan skrive et plugin til MySQL Proxy , der administrerer referenceintegritet mellem overordnede og underordnede tabeller på forskellige servere:

  • Opsnappe INSERT og UPDATE mod barnebord. Forespørgsel efter matchende række i overordnet tabel. Mislykkedes INSERT /UPDATE hvis der ikke findes noget match i den overordnede tabel.

  • Opsnappe DELETE mod forældretabellen. Forespørgsel efter afhængige rækker i underordnet tabel. Mislykkedes DELETE hvis der findes afhængige rækker i den underordnede tabel. Hvis begrænsningen er beregnet til at understøtte kaskadeadfærd, skal du gøre det i stedet for at fejle.

  • Opsnappe UPDATE mod forældretabellen. Hvis den primære nøgleværdi ændres som en del af opdateringen, skal du forespørge efter afhængige rækker fundet i den underordnede tabel. Mislykkedes UPDATE hvis der findes afhængige rækker i den underordnede tabel. Hvis begrænsningen er beregnet til at understøtte kaskadeadfærd, skal du gøre det i stedet for at fejle.

Bemærk, at du bliver nødt til at opbevare oplysninger om referenceintegritetsbegrænsningerne i dit MySQL Proxy-plugin (eller skrive en brugerdefineret konfigurationsfil til dit plugin, der registrerer relationerne). Du kan ikke bruge konventionel FOREIGN KEY syntaks til at erklære sådanne begrænsninger på tværs af MySQL-instanser.



  1. Dataforbindelsesændringer i 2020.24

  2. Hvordan søger man JSON-data i MySQL?

  3. Inner Join tabel med hensyn til en maksimal værdi

  4. MAKETIME() Eksempler – MySQL