Je ne vois aucun moyen de faire cela avec MySQL standard.
Vous pouvez écrire un plugin pour MySQL Proxy , qui gère l'intégrité référentielle entre les tables parent et enfant sur différents serveurs :
-
Intercepter
INSERT
etUPDATE
contre table enfant. Requête pour la ligne correspondante dans la table parent. ÉchecINSERT
/UPDATE
si aucune correspondance n'est trouvée dans la table parent. -
Intercepter
DELETE
contre la table parent. Requête pour les lignes dépendantes dans la table enfant. ÉchecDELETE
si des lignes dépendantes ont été trouvées dans la table enfant. Si la contrainte est destinée à prendre en charge le comportement en cascade, faites-le au lieu d'échouer. -
Intercepter
UPDATE
contre la table parent. Si la valeur de la clé primaire change dans le cadre de la mise à jour, recherchez les lignes dépendantes trouvées dans la table enfant. ÉchecUPDATE
si des lignes dépendantes ont été trouvées dans la table enfant. Si la contrainte est destinée à prendre en charge le comportement en cascade, faites-le au lieu d'échouer.
Notez que vous devrez conserver des informations sur les contraintes d'intégrité référentielle dans votre plugin MySQL Proxy (ou écrire un fichier de configuration personnalisé pour votre plugin qui enregistre les relations). Vous ne pouvez pas utiliser la FOREIGN KEY
conventionnelle syntaxe pour déclarer de telles contraintes sur les instances MySQL.