我寫了一個插入觸發器。宇。mysql - 對於每一行
下一步是我想在觸發器運行後運行查詢或過程。所以不是插入每個記錄,而是插入後。
我在哪裏打這個電話?
DELIMITER $$
DROP TRIGGER /*!50033 IF EXISTS */ triggername $$
CREATE TRIGGER triggername
AFTER INSERT ON tableA
FOR EACH ROW
BEGIN
/*This runs for each insert - I want it to run at the end of the trigger*/
CALL UpdateOtherStuff(NEW.fieldA, NEW.fieldB);
END$$
謝謝,
墊
是否必須在所有插入完成後運行,或者在第一次插入後只運行一次就足夠了?實際上,更重要的是,如果您不是指單個插入的記錄,那麼程序參數'NEW.fieldA'和'NEW.fieldB'會引用什麼? – eggyal
是在所有插入完成後。我會從過程中刪除參數,並在所有插入操作後重新寫入參數。 –
如果多插入語句插入10行,則要在插入10行後調用該過程。但是,如果應用程序選擇通過單獨的'INSERT'語句插入這10行,則仍然會分10次調用該過程。應用程序的實現細節是否真的以這種方式影響數據庫行爲?如果在每一行之後調用這個過程(就像你現在所做的那樣),或者通過事件調度程序定期調用過程,如果不需要任何東西(例如,你可以跟蹤已經處理過的行) )? – eggyal