Je kunt het doen met een BEFORE
op deze manier activeren
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);
Opmerking: Aangezien je een MySQL-versie gebruikt die SIGNAL
mist de truc is om NOT NULL
te schenden beperking op een van de kolommen wanneer rijen met hetzelfde adres zijn gevonden.
Hier is SQLFiddle
demonstratie. Maak een van de laatste invoeginstructies ongedaan en klik op Build Schema
. Deze invoegingen zullen niet slagen.