也許我只是很密集,但希望有人可以幫忙。我想添加一個DateCreated列的觸發器,當添加一行時觸發。當我嘗試添加我得到MySQL觸發器無法在桌面上插入
,因爲它已經被用於通過調用這個存儲函數/觸發語句不能更新存儲函數/觸發器表「產品」
我從this answer實現這是因爲MySQL在插入之後不會讓我觸發,因爲遞歸循環,但是我的觸發器有更新之前和我正在使用NEW。我錯過了我的觸發器?另外,如果我想要做一個DateModified,我必須改變什麼?
觸發
CREATE TRIGGER `DateCreatedTriggerTS` BEFORE INSERT ON `products`
FOR EACH ROW UPDATE products SET DateEntered = NOW() WHERE ProductID = NEW.ProductID
暫停一下,問自己:「更新語句之後的記錄指針在哪裏,它需要執行插入觸發器的位置」,並且您將明白爲什麼不能執行此操作。如果這沒有幫助,問問自己,「表格,行或索引如何鎖定以便插入或更新?」 TLDR:你不能這樣做。嘗試使用AFTER觸發器,你可能會逃避它。 –