1
我正試圖創建一個家庭結構,標記葉節點。我有一個Trigger
紀念family
的葉子,但是當我嘗試保存記錄以下錯誤發生:MySQL錯誤#1442。如何避免它
Error Code: 1442. Can't update table 'family' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
我的觸發是:
CREATE TRIGGER MARK_LEAF BEFORE INSERT ON FAMILY FOR EACH ROW
BEGIN
DECLARE V_IS_LEAF CHAR(1);
SELECT IS_LEAF INTO V_IS_LEAF FROM FAMILY WHERE ID = NEW.PARENT_ID;
IF (V_IS_LEAF = 'F') THEN
UPDATE FAMILY SET IS_LEAF = 'T' WHERE ID = NEW.PARENT_ID;
END IF;
END
注:family
字段ID, PARENT_ID, IS_LEAF
注意2:請注意,我總是更新parent_id
和我的結構是hieralchic所以沒有一個循環。此外,我檢查是否值爲'F'
,我試圖將其更改爲'T'
,因此,如果我與父項發生錯誤,它只會更新同一行一次。
有什麼辦法可以避免這個錯誤?