PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 12.20 » Administration du serveur » Réplication logique » Conflits

30.3. Conflits

La réplication logique se comporte de la même manière pour les opérations DML dans le sens où les données seront mises à jour même si la modification a été faite en local sur la base abonnée. Si les données entrantes entrainent des violations de contrainte d'intégrité, la réplication s'arrête. Cela sera référencé comme un conflit. Lorsque l'on réplique des opérations UPDATE ou DELETE, les données manquantes ne produiront pas de conflit et des opérations de la sorte seront simplement évitées.

Lorsqu'un conflit entraine une erreur, cela stoppe la réplication ; Le conflit devra être résolu manuellement par un utilisateur. Des informations détaillées concernant le conflit seront disponibles dans les journaux d'erreurs de l'instance abonnée.

La résolution peut être réalisée, soit en changeant les données sur la base abonnée pour qu'elles ne soient plus en conflit avec les données entrantes ou en évitant les transactions qui sont en conflit avec les données existantes. La transaction peut être évitée en utilisant la fonction pg_replication_origin_advance() avec node_name pointant sur le nom de l'abonnement, ainsi que la position. La position courante d'origine peut être consultée dans la vue système pg_replication_origin_status.