Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да поддържаме ограничение на външния ключ в различни бази данни?

Не мога да измисля никакъв начин да направя това със стандартен MySQL.

Можете да напишете плъгин за MySQL прокси , който управлява референтната цялост между родителските и дъщерните таблици на различни сървъри:

  • Прихващане на INSERT и UPDATE срещу детска маса. Заявка за съвпадение на ред в родителската таблица. Неуспешен INSERT /UPDATE ако не е намерено съвпадение в родителската таблица.

  • Прихващане на DELETE срещу родителска маса. Заявка за зависими редове в дъщерната таблица. Неуспешно DELETE ако в дъщерната таблица са открити зависими редове. Ако ограничението е предназначено да поддържа каскадно поведение, направете това, вместо да се провалите.

  • Прихващане на UPDATE срещу родителска маса. Ако стойността на първичния ключ се променя като част от актуализацията, потърсете зависими редове, намерени в дъщерната таблица. Неуспешно UPDATE ако в дъщерната таблица са открити зависими редове. Ако ограничението е предназначено да поддържа каскадно поведение, направете това, вместо да се провалите.

Имайте предвид, че ще трябва да съхранявате информация за ограниченията на референтната цялост във вашия MySQL Proxy плъгин (или да напишете персонализиран конфигурационен файл за вашия плъгин, който записва връзките). Не можете да използвате конвенционален FOREIGN KEY синтаксис за деклариране на такива ограничения в 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. Какви са ограниченията на връзката за Google Cloud SQL от App Engine и как най-добре да използвате повторно DB връзки?

  2. Инсталацията на MySQL за Visual Studio е неуспешна, код за грешка 1603

  3. Емулирайте MySQL LIMIT клауза в Microsoft SQL Server 2000

  4. Обединяване на редове в същия идентификатор в масив

  5. MySQL - Как да сумираме пъти?