Vous pouvez le faire avec un BEFORE
déclencher de cette façon
CREATE TRIGGER tg_bi_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET NEW.address1 = IF(EXISTS
(
SELECT *
FROM mytable
WHERE address1 IN(NEW.address1, NEW.address2)
OR address2 IN(NEW.address1, NEW.address2)
), NULL, NEW.address1);
Remarque : Puisque vous utilisez une version de MySQL qui manque de SIGNAL
l'astuce consiste à violer NOT NULL
contrainte sur une des colonnes lorsque des lignes ayant la même adresse ont été trouvées.
Voici SQLFiddle
démo. Décommentez l'une des dernières instructions d'insertion et cliquez sur Build Schema
. Ces insertions échoueront.