Możesz to zrobić za pomocą BEFORE
wyzwalaj w ten sposób
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);
Uwaga: Ponieważ używasz wersji MySQL, w której brakuje SIGNAL
sztuczka polega na naruszeniu NOT NULL
ograniczenie do jednej z kolumn, gdy zostaną znalezione wiersze o tym samym adresie.
Oto SQLFiddle
próbny. Odkomentuj jedną z ostatnich instrukcji wstawiania i kliknij Build Schema
. Te wstawki się nie powiodą.