Bạn có thể làm điều đó với BEFORE
kích hoạt theo cách này
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);
Lưu ý: Vì bạn đang sử dụng phiên bản MySQL thiếu SIGNAL
thủ thuật là vi phạm NOT NULL
ràng buộc trên một trong các cột khi các hàng có cùng địa chỉ được tìm thấy.
Đây là SQLFiddle
thử nghiệm. Bỏ ghi chú một trong những câu lệnh chèn cuối cùng và nhấp vào Build Schema
. Những lần chèn này sẽ không thành công.