Du kan gøre det med en BEFORE
udløse på denne måde
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);
Bemærk: Da du bruger en MySQL-version, der mangler SIGNAL
Tricket er at overtræde NOT NULL
begrænsning på en af kolonnerne, når rækker med samme adresse er fundet.
Her er SQLFiddle
demo. Fjern kommentarer til en af de sidste indsæt-sætninger, og klik på Build Schema
. Disse indsættelser vil ikke lykkes.