Du kan göra det med en BEFORE
utlösa på detta sätt
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);
Obs! Eftersom du använder en MySQL-version som saknar SIGNAL
Tricket är att bryta mot NOT NULL
begränsning på en av kolumnerna när rader med samma adress har hittats.
Här är SQLFiddle
demo. Avkommentera ett av de senaste infogningssatserna och klicka på Build Schema
. Dessa inlägg kommer inte att lyckas.