0
我在使用mySQL觸發器時遇到了一些問題。替換觸發器激活的DELETE觸發器,但不是INSERT - mySQL
我有這樣的工作:
CREATE TRIGGER `insert_trigger` AFTER INSERT ON `table`
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM `table` WHERE userID = NEW.userID AND IP = new.IP) = 0 THEN
IF (SELECT COUNT(*) FROM `table` WHERE userID = NEW.userID) = 0 THEN
INSERT INTO `table2` VALUES(NEW.userID, (SELECT (COUNT(*)+1) FROM `table` WHERE userID = NEW.userID));
ELSE
UPDATE `table2` SET views = views+1 WHERE table.userID = NEW.userID;
END IF;
END IF;
END//
DELIMITER ;
其中具有INSERT
語句工作正常。
不過,我使用REPLACE
這似乎只是叫我DELETE
觸發
CREATE TRIGGER `delete_trigger` BEFORE DELETE ON `table`
FOR EACH ROW
BEGIN
IF (SELECT views FROM `table2` WHERE userID = OLD.userID) > 1 THEN
UPDATE `table2` SET views = views-1 WHEREuserID = OLD.userID;
END IF;
END//
DELIMITER ;
當使用REPLACE
都DELETE
和INSERT
觸發器應該叫。
我知道mySQL不支持多觸發器。
當另一個表有INSERT
,DELETE
和REPLACE
事件發生時,獲得相同結果(加/減視圖)的可能解決方案是什麼?
謝謝!
It's Smart answer,+1 –