Můžete to udělat pomocí BEFORE
spustit tímto způsobem
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);
Poznámka: Protože používáte verzi MySQL, která postrádá SIGNAL
trik je v porušení NOT NULL
omezení na jeden ze sloupců, když byly nalezeny řádky se stejnou adresou.
Zde je SQLFiddle
demo. Odkomentujte jeden z posledních příkazů vložení a klikněte na Build Schema
. Tyto vložky nebudou úspěšné.